window.VTC = {
    "ditu": {
        "normal": {
            "version": "077",
            "updateDate": "20150605"
        },
        "satellite": {
            "version": "009",
            "updateDate": "20150601"
        },
        "normalTraffic": {
            "version": "073",
            "updateDate": "20150605"
        },
        "satelliteTraffic": {
            "version": "073",
            "updateDate": "20150605"
        },
        "mapJS": {
            "version": "094",
            "updateDate": "20150605"
        },
        "satelliteStreet": {
            "version": "073",
            "updateDate": "20150605"
        },
        "panoClick": {
            "version": "1033",
            "updateDate": "201400823"
        },
        "panoUdt": {
            "version": "20150618",
            "updateDate": "20150618"
        },
        "panoSwfAPI": {
            "version": "20150123",
            "updateDate": "20150123"
        },
        "panoSwfPlace": {
            "version": "20141112",
            "updateDate": "20141112"
        }
    },
    "webapp": {
        "high_normal": {
            "version": "001",
            "updateDate": "20141209"
        },
        "lower_normal": {
            "version": "002",
            "updateDate": "20150529"
        }
    },
    "api_for_mobile": {
        "vector": {
            "version": "002",
            "updateDate": "20150529"
        },
        "vectorIcon": {
            "version": "002",
            "updateDate": "20150529"
        }
    }
};
window.BMAP_AUTHENTIC_KEY = "yaDRGoon5YoRzAAwH781yUgn"; (function() {
    function aa(a) {
        throw a;
    }
    var j = void 0,
    o = !0,
    p = null,
    q = !1;
    function s() {
        return function() {}
    }
    function ba(a) {
        return function(b) {
            this[a] = b
        }
    }
    function u(a) {
        return function() {
            return this[a]
        }
    }
    function da(a) {
        return function() {
            return a
        }
    }
    var ea, fa = [];
    function ga(a) {
        return function() {
            return fa[a].apply(this, arguments)
        }
    }
    function ia(a, b) {
        return fa[a] = b
    }
    var ja, w = ja = w || {
        version: "1.3.4"
    };
    w.Q = "$BAIDU$";
    window[w.Q] = window[w.Q] || {};
    w.object = w.object || {};
    w.extend = w.object.extend = function(a, b) {
        for (var c in b) b.hasOwnProperty(c) && (a[c] = b[c]);
        return a
    };
    w.B = w.B || {};
    w.B.N = function(a) {
        return "string" == typeof a || a instanceof String ? document.getElementById(a) : a && a.nodeName && (1 == a.nodeType || 9 == a.nodeType) ? a: p
    };
    w.N = w.tc = w.B.N;
    w.B.J = function(a) {
        a = w.B.N(a);
        if (a === p) return a;
        a.style.display = "none";
        return a
    };
    w.J = w.B.J;
    w.lang = w.lang || {};
    w.lang.eg = function(a) {
        return "[object String]" == Object.prototype.toString.call(a)
    };
    w.eg = w.lang.eg;
    w.B.vj = function(a) {
        return w.lang.eg(a) ? document.getElementById(a) : a
    };
    w.vj = w.B.vj;
    w.B.contains = function(a, b) {
        var c = w.B.vj,
        a = c(a),
        b = c(b);
        return a.contains ? a != b && a.contains(b) : !!(a.compareDocumentPosition(b) & 16)
    };
    w.S = w.S || {};
    /msie (\d+\.\d)/i.test(navigator.userAgent) && (w.S.ba = w.ba = document.documentMode || +RegExp.$1);
    var la = {
        cellpadding: "cellPadding",
        cellspacing: "cellSpacing",
        colspan: "colSpan",
        rowspan: "rowSpan",
        valign: "vAlign",
        usemap: "useMap",
        frameborder: "frameBorder"
    };
    8 > w.S.ba ? (la["for"] = "htmlFor", la["class"] = "className") : (la.htmlFor = "for", la.className = "class");
    w.B.wF = la;
    w.B.nE = function(a, b, c) {
        a = w.B.N(a);
        if (a === p) return a;
        if ("style" == b) a.style.cssText = c;
        else {
            b = w.B.wF[b] || b;
            a.setAttribute(b, c)
        }
        return a
    };
    w.nE = w.B.nE;
    w.B.oE = function(a, b) {
        a = w.B.N(a);
        if (a === p) return a;
        for (var c in b) w.B.nE(a, c, b[c]);
        return a
    };
    w.oE = w.B.oE;
    w.rk = w.rk || {}; (function() {
        var a = RegExp("(^[\\s\\t\\xa0\\u3000]+)|([\\u3000\\xa0\\s\\t]+$)", "g");
        w.rk.trim = function(b) {
            return ("" + b).replace(a, "")
        }
    })();
    w.trim = w.rk.trim;
    w.rk.Nl = function(a, b) {
        var a = "" + a,
        c = Array.prototype.slice.call(arguments, 1),
        d = Object.prototype.toString;
        if (c.length) {
            c = c.length == 1 ? b !== p && /\[object Array\]|\[object Object\]/.test(d.call(b)) ? b: c: c;
            return a.replace(/#\{(.+?)\}/g,
            function(a, b) {
                var g = c[b];
                "[object Function]" == d.call(g) && (g = g(b));
                return "undefined" == typeof g ? "": g
            })
        }
        return a
    };
    w.Nl = w.rk.Nl;
    w.B.Xb = function(a, b) {
        a = w.B.N(a);
        if (a === p) return a;
        for (var c = a.className.split(/\s+/), d = b.split(/\s+/), e, f = d.length, g, i = 0; i < f; ++i) {
            g = 0;
            for (e = c.length; g < e; ++g) if (c[g] == d[i]) {
                c.splice(g, 1);
                break
            }
        }
        a.className = c.join(" ");
        return a
    };
    w.Xb = w.B.Xb;
    w.B.Nw = function(a, b, c) {
        a = w.B.N(a);
        if (a === p) return a;
        var d;
        if (a.insertAdjacentHTML) a.insertAdjacentHTML(b, c);
        else {
            d = a.ownerDocument.createRange();
            b = b.toUpperCase();
            if (b == "AFTERBEGIN" || b == "BEFOREEND") {
                d.selectNodeContents(a);
                d.collapse(b == "AFTERBEGIN")
            } else {
                b = b == "BEFOREBEGIN";
                d[b ? "setStartBefore": "setEndAfter"](a);
                d.collapse(b)
            }
            d.insertNode(d.createContextualFragment(c))
        }
        return a
    };
    w.Nw = w.B.Nw;
    w.B.show = function(a) {
        a = w.B.N(a);
        if (a === p) return a;
        a.style.display = "";
        return a
    };
    w.show = w.B.show;
    w.B.JC = function(a) {
        a = w.B.N(a);
        return a === p ? a: a.nodeType == 9 ? a: a.ownerDocument || a.document
    };
    w.B.Xa = function(a, b) {
        a = w.B.N(a);
        if (a === p) return a;
        for (var c = b.split(/\s+/), d = a.className, e = " " + d + " ", f = 0, g = c.length; f < g; f++) e.indexOf(" " + c[f] + " ") < 0 && (d = d + (" " + c[f]));
        a.className = d;
        return a
    };
    w.Xa = w.B.Xa;
    w.B.IA = w.B.IA || {};
    w.B.il = w.B.il || [];
    w.B.il.filter = function(a, b, c) {
        for (var d = 0,
        e = w.B.il,
        f; f = e[d]; d++) if (f = f[c]) b = f(a, b);
        return b
    };
    w.rk.MM = function(a) {
        return a.indexOf("-") < 0 && a.indexOf("_") < 0 ? a: a.replace(/[-_][^-_]/g,
        function(a) {
            return a.charAt(1).toUpperCase()
        })
    };
    w.B.I1 = function(a, b) {
        w.B.hs(a, b) ? w.B.Xb(a, b) : w.B.Xa(a, b)
    };
    w.B.hs = function(a) {
        if (arguments.length <= 0 || typeof a === "function") return this;
        if (this.size() <= 0) return q;
        var a = a.replace(/^\s+/g, "").replace(/\s+$/g, "").replace(/\s+/g, " "),
        b = a.split(" "),
        c;
        w.forEach(this,
        function(a) {
            for (var a = a.className,
            e = 0; e < b.length; e++) if (!~ (" " + a + " ").indexOf(" " + b[e] + " ")) {
                c = q;
                return
            }
            c !== q && (c = o)
        });
        return c
    };
    w.B.Zi = function(a, b) {
        var c = w.B,
        a = c.N(a);
        if (a === p) return a;
        var b = w.rk.MM(b),
        d = a.style[b];
        if (!d) var e = c.IA[b],
        d = a.currentStyle || (w.S.ba ? a.style: getComputedStyle(a, p)),
        d = e && e.get ? e.get(a, d) : d[e || b];
        if (e = c.il) d = e.filter(b, d, "get");
        return d
    };
    w.Zi = w.B.Zi;
    /opera\/(\d+\.\d)/i.test(navigator.userAgent) && (w.S.opera = +RegExp.$1);
    w.S.NK = /webkit/i.test(navigator.userAgent);
    w.S.fW = /gecko/i.test(navigator.userAgent) && !/like gecko/i.test(navigator.userAgent);
    w.S.uD = "CSS1Compat" == document.compatMode;
    w.B.V = function(a) {
        a = w.B.N(a);
        if (a === p) return a;
        var b = w.B.JC(a),
        c = w.S,
        d = w.B.Zi;
        c.fW > 0 && b.getBoxObjectFor && d(a, "position");
        var e = {
            left: 0,
            top: 0
        },
        f;
        if (a == (c.ba && !c.uD ? b.body: b.documentElement)) return e;
        if (a.getBoundingClientRect) {
            a = a.getBoundingClientRect();
            e.left = Math.floor(a.left) + Math.max(b.documentElement.scrollLeft, b.body.scrollLeft);
            e.top = Math.floor(a.top) + Math.max(b.documentElement.scrollTop, b.body.scrollTop);
            e.left = e.left - b.documentElement.clientLeft;
            e.top = e.top - b.documentElement.clientTop;
            a = b.body;
            b = parseInt(d(a, "borderLeftWidth"));
            d = parseInt(d(a, "borderTopWidth"));
            if (c.ba && !c.uD) {
                e.left = e.left - (isNaN(b) ? 2 : b);
                e.top = e.top - (isNaN(d) ? 2 : d)
            }
        } else {
            f = a;
            do {
                e.left = e.left + f.offsetLeft;
                e.top = e.top + f.offsetTop;
                if (c.NK > 0 && d(f, "position") == "fixed") {
                    e.left = e.left + b.body.scrollLeft;
                    e.top = e.top + b.body.scrollTop;
                    break
                }
                f = f.offsetParent
            } while ( f && f != a );
            if (c.opera > 0 || c.NK > 0 && d(a, "position") == "absolute") e.top = e.top - b.body.offsetTop;
            for (f = a.offsetParent; f && f != b.body;) {
                e.left = e.left - f.scrollLeft;
                if (!c.opera || f.tagName != "TR") e.top = e.top - f.scrollTop;
                f = f.offsetParent
            }
        }
        return e
    };
    /firefox\/(\d+\.\d)/i.test(navigator.userAgent) && (w.S.Lg = +RegExp.$1);
    /BIDUBrowser/i.test(navigator.userAgent) && (w.S.g_ = o);
    var ma = navigator.userAgent;
    /(\d+\.\d)?(?:\.\d)?\s+safari\/?(\d+\.\d+)?/i.test(ma) && !/chrome/i.test(ma) && (w.S.hM = +(RegExp.$1 || RegExp.$2));
    /chrome\/(\d+\.\d)/i.test(navigator.userAgent) && (w.S.QI = +RegExp.$1);
    w.Zb = w.Zb || {};
    w.Zb.Fb = function(a, b) {
        var c, d, e = a.length;
        if ("function" == typeof b) for (d = 0; d < e; d++) {
            c = a[d];
            c = b.call(a, c, d);
            if (c === q) break
        }
        return a
    };
    w.Fb = w.Zb.Fb;
    w.lang.Q = function() {
        return "TANGRAM__" + (window[w.Q]._counter++).toString(36)
    };
    window[w.Q]._counter = window[w.Q]._counter || 1;
    window[w.Q]._instances = window[w.Q]._instances || {};
    w.lang.rs = function(a) {
        return "[object Function]" == Object.prototype.toString.call(a)
    };
    w.lang.ra = function(a) {
        this.Q = a || w.lang.Q();
        window[w.Q]._instances[this.Q] = this
    };
    window[w.Q]._instances = window[w.Q]._instances || {};
    w.lang.ra.prototype.Nh = ga(0);
    w.lang.ra.prototype.toString = function() {
        return "[object " + (this.LO || "Object") + "]"
    };
    w.lang.dy = function(a, b) {
        this.type = a;
        this.returnValue = o;
        this.target = b || p;
        this.currentTarget = p
    };
    w.lang.ra.prototype.addEventListener = function(a, b, c) {
        if (w.lang.rs(b)) { ! this.ni && (this.ni = {});
            var d = this.ni,
            e;
            if (typeof c == "string" && c) { / [ ^ \w\ - ] / .test(c) && aa("nonstandard key:" + c);
                e = b.pK = c
            }
            a.indexOf("on") != 0 && (a = "on" + a);
            typeof d[a] != "object" && (d[a] = {});
            e = e || w.lang.Q();
            b.pK = e;
            d[a][e] = b
        }
    };
    w.lang.ra.prototype.removeEventListener = function(a, b) {
        if (w.lang.rs(b)) b = b.pK;
        else if (!w.lang.eg(b)) return; ! this.ni && (this.ni = {});
        a.indexOf("on") != 0 && (a = "on" + a);
        var c = this.ni;
        c[a] && c[a][b] && delete c[a][b]
    };
    w.lang.ra.prototype.dispatchEvent = function(a, b) {
        w.lang.eg(a) && (a = new w.lang.dy(a)); ! this.ni && (this.ni = {});
        var b = b || {},
        c;
        for (c in b) a[c] = b[c];
        var d = this.ni,
        e = a.type;
        a.target = a.target || this;
        a.currentTarget = this;
        e.indexOf("on") != 0 && (e = "on" + e);
        w.lang.rs(this[e]) && this[e].apply(this, arguments);
        if (typeof d[e] == "object") for (c in d[e]) d[e][c].apply(this, arguments);
        return a.returnValue
    };
    w.lang.ja = function(a, b, c) {
        var d, e, f = a.prototype;
        e = new Function;
        e.prototype = b.prototype;
        e = a.prototype = new e;
        for (d in f) e[d] = f[d];
        a.prototype.constructor = a;
        a.rY = b.prototype;
        if ("string" == typeof c) e.LO = c
    };
    w.ja = w.lang.ja;
    w.lang.Ld = function(a) {
        return window[w.Q]._instances[a] || p
    };
    w.platform = w.platform || {};
    w.platform.GK = /macintosh/i.test(navigator.userAgent);
    w.platform.C0 = /MicroMessenger/i.test(navigator.userAgent);
    w.platform.OK = /windows/i.test(navigator.userAgent);
    w.platform.nW = /x11/i.test(navigator.userAgent);
    w.platform.ck = /android/i.test(navigator.userAgent);
    /android (\d+\.\d)/i.test(navigator.userAgent) && (w.platform.AI = w.AI = RegExp.$1);
    w.platform.hW = /ipad/i.test(navigator.userAgent);
    w.platform.qD = /iphone/i.test(navigator.userAgent);
    function na(a, b) {
        a.domEvent = b = window.event || b;
        a.clientX = b.clientX || b.pageX;
        a.clientY = b.clientY || b.pageY;
        a.offsetX = b.offsetX || b.layerX;
        a.offsetY = b.offsetY || b.layerY;
        a.screenX = b.screenX;
        a.screenY = b.screenY;
        a.ctrlKey = b.ctrlKey || b.metaKey;
        a.shiftKey = b.shiftKey;
        a.altKey = b.altKey;
        if (b.touches) {
            a.touches = [];
            for (var c = 0; c < b.touches.length; c++) a.touches.push({
                clientX: b.touches[c].clientX,
                clientY: b.touches[c].clientY,
                screenX: b.touches[c].screenX,
                screenY: b.touches[c].screenY,
                pageX: b.touches[c].pageX,
                pageY: b.touches[c].pageY,
                target: b.touches[c].target,
                identifier: b.touches[c].identifier
            })
        }
        if (b.changedTouches) {
            a.changedTouches = [];
            for (c = 0; c < b.changedTouches.length; c++) a.changedTouches.push({
                clientX: b.changedTouches[c].clientX,
                clientY: b.changedTouches[c].clientY,
                screenX: b.changedTouches[c].screenX,
                screenY: b.changedTouches[c].screenY,
                pageX: b.changedTouches[c].pageX,
                pageY: b.changedTouches[c].pageY,
                target: b.changedTouches[c].target,
                identifier: b.changedTouches[c].identifier
            })
        }
        if (b.targetTouches) {
            a.targetTouches = [];
            for (c = 0; c < b.targetTouches.length; c++) a.targetTouches.push({
                clientX: b.targetTouches[c].clientX,
                clientY: b.targetTouches[c].clientY,
                screenX: b.targetTouches[c].screenX,
                screenY: b.targetTouches[c].screenY,
                pageX: b.targetTouches[c].pageX,
                pageY: b.targetTouches[c].pageY,
                target: b.targetTouches[c].target,
                identifier: b.targetTouches[c].identifier
            })
        }
        a.rotation = b.rotation;
        a.scale = b.scale;
        return a
    }
    w.lang.Zv = function(a) {
        var b = window[w.Q];
        b.NQ && delete b.NQ[a]
    };
    w.event = {};
    w.F = w.event.F = function(a, b, c) {
        if (! (a = w.N(a))) return a;
        b = b.replace(/^on/, "");
        a.addEventListener ? a.addEventListener(b, c, q) : a.attachEvent && a.attachEvent("on" + b, c);
        return a
    };
    w.ie = w.event.ie = function(a, b, c) {
        if (! (a = w.N(a))) return a;
        b = b.replace(/^on/, "");
        a.removeEventListener ? a.removeEventListener(b, c, q) : a.detachEvent && a.detachEvent("on" + b, c);
        return a
    };
    w.B.hs = function(a, b) {
        if (!a || !a.className || typeof a.className != "string") return q;
        var c = -1;
        try {
            c = a.className == b || a.className.search(RegExp("(\\s|^)" + b + "(\\s|$)"))
        } catch(d) {
            return q
        }
        return c > -1
    };
    w.AJ = function() {
        function a(a) {
            document.addEventListener && (this.element = a, this.DJ = this.Zj ? "touchstart": "mousedown", this.rC = this.Zj ? "touchmove": "mousemove", this.qC = this.Zj ? "touchend": "mouseup", this.Zg = q, this.ht = this.gt = 0, this.element.addEventListener(this.DJ, this, q), ja.F(this.element, "mousedown", s()), this.handleEvent(p))
        }
        a.prototype = {
            Zj: "ontouchstart" in window || "createTouch" in document,
            start: function(a) {
                oa(a);
                this.Zg = q;
                this.gt = this.Zj ? a.touches[0].clientX: a.clientX;
                this.ht = this.Zj ? a.touches[0].clientY: a.clientY;
                this.element.addEventListener(this.rC, this, q);
                this.element.addEventListener(this.qC, this, q)
            },
            move: function(a) {
                pa(a);
                var c = this.Zj ? a.touches[0].clientY: a.clientY;
                if (10 < Math.abs((this.Zj ? a.touches[0].clientX: a.clientX) - this.gt) || 10 < Math.abs(c - this.ht)) this.Zg = o
            },
            end: function(a) {
                pa(a);
                this.Zg || (a = document.createEvent("Event"), a.initEvent("tap", q, o), this.element.dispatchEvent(a));
                this.element.removeEventListener(this.rC, this, q);
                this.element.removeEventListener(this.qC, this, q)
            },
            handleEvent: function(a) {
                if (a) switch (a.type) {
                case this.DJ:
                    this.start(a);
                    break;
                case this.rC:
                    this.move(a);
                    break;
                case this.qC:
                    this.end(a)
                }
            }
        };
        return function(b) {
            return new a(b)
        }
    } ();
    var z = window.BMap || {};
    z.version = "2.0";
    z.kI = 0.34 > Math.random();
    0 <= z.version.indexOf("#") && (z.version = "2.0");
    z.Oq = [];
    z.Fe = function(a) {
        this.Oq.push(a)
    };
    z.Eq = [];
    z.qm = function(a) {
        this.Eq.push(a)
    };
    z.ZS = z.apiLoad || s();
    var qa = window.BMAP_AUTHENTIC_KEY;
    window.BMAP_AUTHENTIC_KEY = p;
    var ra = window.BMap_loadScriptTime,
    sa = (new Date).getTime(),
    ta = p,
    ua = o,
    va = p,
    wa = 5042,
    xa = 5002,
    ya = 5003,
    Aa = "load_mapclick",
    Ba = 5038,
    Ca = 5041,
    Da = 5047,
    Ea = 5036,
    Fa = 5039,
    Ga = 5037,
    Ha = 5040,
    Ia = 5011,
    Ja = 7E3;
    function Ka(a, b) {
        if (a = w.N(a)) {
            var c = this;
            w.lang.ra.call(c);
            b = b || {};
            c.D = {
                oB: 200,
                Rb: o,
                jw: q,
                jC: o,
                eo: o,
                fo: q,
                yJ: o,
                lC: o,
                Pr: o,
                gw: o,
                Ll: o,
                co: b.enable3DBuilding || q,
                Lc: 25,
                lZ: 240,
                NS: 450,
                Kb: E.Kb,
                kd: E.kd,
                Pw: !!b.Pw,
                Tb: b.minZoom || 1,
                Mb: b.maxZoom || 19,
                kb: b.mapType || La,
                o1: q,
                hw: o,
                ew: 500,
                tU: b.enableHighResolution !== q,
                Si: b.enableMapClick !== q,
                devicePixelRatio: b.devicePixelRatio || window.devicePixelRatio || 1,
                ME: b.vectorMapLevel || (G() ? 3 : 99),
                de: b.mapStyle || p,
                wW: b.logoControl === q ? q: o,
                gT: ["chrome"],
                Hv: b.beforeClickIcon || p
            };
            c.D.de && (this.XV(c.D.de.controls), this.AK(c.D.de.geotableId));
            c.D.de && c.D.de.styleId && c.p0(c.D.de.styleId);
            c.D.Dl = {
                dark: {
                    backColor: "#2D2D2D",
                    textColor: "#bfbfbf",
                    iconUrl: "dicons"
                },
                normal: {
                    backColor: "#F3F1EC",
                    textColor: "#c61b1b",
                    iconUrl: "icons"
                },
                light: {
                    backColor: "#EBF8FC",
                    textColor: "#017fb4",
                    iconUrl: "licons"
                }
            };
            b.enableAutoResize && (c.D.gw = b.enableAutoResize);
            b.enableStreetEntrance === q && (c.D.Ll = b.enableStreetEntrance);
            b.enableDeepZoom === q && (c.D.yJ = b.enableDeepZoom);
            w.platform.ck && 1.5 < window.devicePixelRatio && (c.D.devicePixelRatio = 1.5);
            var d = c.D.gT;
            if (G()) for (var e = 0,
            f = d.length; e < f; e++) if (w.S[d[e]]) {
                c.D.devicePixelRatio = 1;
                break
            }
            d = -1 < navigator.userAgent.toLowerCase().indexOf("android");
            e = -1 < navigator.userAgent.toLowerCase().indexOf("mqqbrowser");
            if ( - 1 < navigator.userAgent.toLowerCase().indexOf("UCBrowser") || d && e) c.D.ME = 99,
            c.D.tU = q,
            c.D.devicePixelRatio = 1;
            c.Ia = a;
            c.BA(a);
            a.unselectable = "on";
            a.innerHTML = "";
            a.appendChild(c.la());
            b.size && this.rd(b.size);
            d = c.Lb();
            c.width = d.width;
            c.height = d.height;
            c.offsetX = 0;
            c.offsetY = 0;
            c.platform = a.firstChild;
            c.ee = c.platform.firstChild;
            c.ee.style.width = c.width + "px";
            c.ee.style.height = c.height + "px";
            c.Vd = {};
            c.Pe = new H(0, 0);
            c.hc = new H(0, 0);
            c.va = 3;
            c.xc = 0;
            c.HB = p;
            c.GB = p;
            c.Jb = "";
            c.Lv = "";
            c.uh = {};
            c.uh.custom = {};
            c.Ha = 0;
            c.G = new Na(a, {
                yf: "api"
            });
            c.G.J();
            c.G.qE(c);
            b = b || {};
            d = c.kb = c.D.kb;
            c.Rd = d.so();
            d === Oa && Pa(xa);
            d === Qa && Pa(ya);
            d = c.D;
            d.eN = b.minZoom;
            d.dN = b.maxZoom;
            c.bu();
            c.H = {
                yc: q,
                Wb: 0,
                ws: 0,
                TK: 0,
                G0: 0,
                gB: q,
                aE: -1,
                Ae: []
            };
            c.platform.style.cursor = c.D.Kb;
            for (e = 0; e < z.Oq.length; e++) z.Oq[e](c);
            c.H.aE = e;
            c.P();
            I.load("map",
            function() {
                c.qb()
            });
            c.D.Si && (setTimeout(function() {
                Pa(Aa)
            },
            1E3), I.load("mapclick",
            function() {
                window.MPC_Mgr = window.MPC_Mgr || {};
                window.MPC_Mgr[c.Q] = new Sa(c)
            },
            o));
            Ta() && I.load("oppc",
            function() {
                c.xy()
            });
            G() && I.load("opmb",
            function() {
                c.xy()
            });
            a = p;
            c.PA = []
        }
    }
    w.lang.ja(Ka, w.lang.ra, "Map");
    w.extend(Ka.prototype, {
        la: function() {
            var a = J("div"),
            b = a.style;
            b.overflow = "visible";
            b.position = "absolute";
            b.zIndex = "0";
            b.top = b.left = "0px";
            var b = J("div", {
                "class": "BMap_mask"
            }),
            c = b.style;
            c.position = "absolute";
            c.top = c.left = "0px";
            c.zIndex = "9";
            c.overflow = "hidden";
            c.WebkitUserSelect = "none";
            a.appendChild(b);
            return a
        },
        BA: function(a) {
            var b = a.style;
            b.overflow = "hidden";
            "absolute" !== Ua(a).position && (b.position = "relative", b.zIndex = 0);
            b.backgroundColor = "#F3F1EC";
            b.color = "#000";
            b.textAlign = "left"
        },
        P: function() {
            var a = this;
            a.kr = function() {
                var b = a.Lb();
                if (a.width !== b.width || a.height !== b.height) {
                    var c = new K(a.width, a.height),
                    d = new L("onbeforeresize");
                    d.size = c;
                    a.dispatchEvent(d);
                    a.Ij((b.width - a.width) / 2, (b.height - a.height) / 2);
                    a.ee.style.width = (a.width = b.width) + "px";
                    a.ee.style.height = (a.height = b.height) + "px";
                    c = new L("onresize");
                    c.size = b;
                    a.dispatchEvent(c)
                }
            };
            a.D.gw && (a.H.or = setInterval(a.kr, 80))
        },
        Ij: function(a, b, c, d) {
            var e = this.ia().gc(this.U()),
            f = this.Rd,
            g = o;
            c && H.FK(c) && (this.Pe = new H(c.lng, c.lat), g = q);
            if (c = c && d ? f.hm(c, this.Jb) : this.hc) if (this.hc = new H(c.lng + a * e, c.lat - b * e), (a = f.Yg(this.hc, this.Jb)) && g) this.Pe = a
        },
        qg: function(a, b) {
            if (Va(a) && (this.bu(), this.dispatchEvent(new L("onzoomstart")), a = this.jn(a).zoom, a !== this.va)) {
                this.xc = this.va;
                this.va = a;
                var c;
                b ? c = b: this.Pg() && (c = this.Pg().V());
                c && (c = this.Ub(c, this.xc), this.Ij(this.width / 2 - c.x, this.height / 2 - c.y, this.mb(c, this.xc), o));
                this.dispatchEvent(new L("onzoomstartcode"))
            }
        },
        Bc: function(a) {
            this.qg(a)
        },
        QE: function(a) {
            this.qg(this.va + 1, a)
        },
        RE: function(a) {
            this.qg(this.va - 1, a)
        },
        $h: function(a) {
            a instanceof H && (this.hc = this.Rd.hm(a, this.Jb), this.Pe = H.FK(a) ? new H(a.lng, a.lat) : this.Rd.Yg(this.hc, this.Jb))
        },
        ig: function(a, b) {
            a = Math.round(a) || 0;
            b = Math.round(b) || 0;
            this.Ij( - a, -b)
        },
        xv: function(a) {
            a && Wa(a.Le) && (a.Le(this), this.dispatchEvent(new L("onaddcontrol", a)))
        },
        XL: function(a) {
            a && Wa(a.remove) && (a.remove(), this.dispatchEvent(new L("onremovecontrol", a)))
        },
        Mn: function(a) {
            a && Wa(a.fa) && (a.fa(this), this.dispatchEvent(new L("onaddcontextmenu", a)))
        },
        Po: function(a) {
            a && Wa(a.remove) && (this.dispatchEvent(new L("onremovecontextmenu", a)), a.remove())
        },
        xa: function(a) {
            a && Wa(a.Le) && (a.Le(this), this.dispatchEvent(new L("onaddoverlay", a)))
        },
        Hb: function(a) {
            a && Wa(a.remove) && (a.remove(), this.dispatchEvent(new L("onremoveoverlay", a)))
        },
        TI: function() {
            this.dispatchEvent(new L("onclearoverlays"))
        },
        Fg: function(a) {
            a && this.dispatchEvent(new L("onaddtilelayer", a))
        },
        dh: function(a) {
            a && this.dispatchEvent(new L("onremovetilelayer", a))
        },
        mg: function(a) {
            if (this.kb !== a) {
                var b = new L("onsetmaptype");
                b.f1 = this.kb;
                this.kb = this.D.kb = a;
                this.Rd = this.kb.so();
                this.Ij(0, 0, this.za(), o);
                this.bu();
                var c = this.jn(this.U()).zoom;
                this.qg(c);
                this.dispatchEvent(b);
                b = new L("onmaptypechange");
                b.va = c;
                b.kb = a;
                this.dispatchEvent(b); (a === Xa || a === Qa) && Pa(ya)
            }
        },
        Hf: function(a) {
            var b = this;
            if (a instanceof H) b.$h(a, {
                noAnimation: o
            });
            else if (Ya(a)) if (b.kb === Oa) {
                var c = E.kB[a];
                c && (pt = c.m, b.Hf(pt))
            } else {
                var d = this.yG();
                d.tE(function(c) {
                    0 === d.Ul() && 2 === d.ta.result.type && (b.Hf(c.Xj(0).point), Oa.Tj(a) && b.pE(a))
                });
                d.search(a, {
                    log: "center"
                })
            }
        },
        Yd: function(a, b) {
            "[object Undefined]" !== Object.prototype.toString.call(b) && (b = parseInt(b));
            va = G() ? Za.li.Oj(z.kI ? 102 : 101) : Za.li.Oj(1);
            va.it();
            va.oy = +new Date;
            va.$b("script_loaded", sa - ra);
            va.$b("centerAndZoom");
            var c = this;
            if (Ya(a)) if (c.kb === Oa) {
                var d = E.kB[a];
                d && (pt = d.m, c.Yd(pt, b))
            } else {
                var e = c.yG();
                e.tE(function(d) {
                    if (0 === e.Ul() && (2 === e.ta.result.type || 11 === e.ta.result.type)) {
                        var d = d.Xj(0).point,
                        f = b || N.EC(e.ta.content.level, c);
                        c.Yd(d, f);
                        Oa.Tj(a) && c.pE(a)
                    }
                });
                e.search(a, {
                    log: "center"
                })
            } else if (a instanceof H && b) {
                b = c.jn(b).zoom;
                c.xc = c.va || b;
                c.va = b;
                d = c.Pe;
                c.Pe = new H(a.lng, a.lat);
                c.hc = c.Rd.hm(c.Pe, c.Jb);
                c.HB = c.HB || c.va;
                c.GB = c.GB || c.Pe;
                var f = new L("onload"),
                g = new L("onloadcode");
                f.point = new H(a.lng, a.lat);
                f.pixel = c.Ub(c.Pe, c.va);
                f.zoom = b;
                c.loaded || (c.loaded = o, c.dispatchEvent(f), ta || (ta = $a()));
                c.dispatchEvent(g);
                f = new L("onmoveend");
                f.cG = "centerAndZoom";
                d.Za(c.Pe) || c.dispatchEvent(f);
                c.dispatchEvent(new L("onmoveend"));
                c.xc !== c.va && (d = new L("onzoomend"), d.cG = "centerAndZoom", c.dispatchEvent(d));
                c.D.co && c.co()
            }
        },
        yG: function() {
            this.H.YK || (this.H.YK = new bb(1));
            return this.H.YK
        },
        reset: function() {
            this.Yd(this.GB, this.HB, o)
        },
        enableDragging: function() {
            this.D.Rb = o
        },
        disableDragging: function() {
            this.D.Rb = q
        },
        enableInertialDragging: function() {
            this.D.hw = o
        },
        disableInertialDragging: function() {
            this.D.hw = q
        },
        enableScrollWheelZoom: function() {
            this.D.fo = o
        },
        disableScrollWheelZoom: function() {
            this.D.fo = q
        },
        enableContinuousZoom: function() {
            this.D.eo = o
        },
        disableContinuousZoom: function() {
            this.D.eo = q
        },
        enableDoubleClickZoom: function() {
            this.D.jC = o
        },
        disableDoubleClickZoom: function() {
            this.D.jC = q
        },
        enableKeyboard: function() {
            this.D.jw = o
        },
        disableKeyboard: function() {
            this.D.jw = q
        },
        enablePinchToZoom: function() {
            this.D.Pr = o
        },
        disablePinchToZoom: function() {
            this.D.Pr = q
        },
        enableAutoResize: function() {
            this.D.gw = o;
            this.kr();
            this.H.or || (this.H.or = setInterval(this.kr, 80))
        },
        disableAutoResize: function() {
            this.D.gw = q;
            this.H.or && (clearInterval(this.H.or), this.H.or = p)
        },
        co: function() {
            this.D.co = o;
            this.Zm || (this.Zm = new cb({
                HJ: o
            }), this.Fg(this.Zm))
        },
        dU: function() {
            this.D.co = q;
            this.Zm && (this.dh(this.Zm), this.Zm = p, delete this.Zm)
        },
        Lb: function() {
            return this.Cr && this.Cr instanceof K ? new K(this.Cr.width, this.Cr.height) : new K(this.Ia.clientWidth, this.Ia.clientHeight)
        },
        rd: function(a) {
            a && a instanceof K ? (this.Cr = a, this.Ia.style.width = a.width + "px", this.Ia.style.height = a.height + "px") : this.Cr = p
        },
        za: u("Pe"),
        U: u("va"),
        yT: function() {
            this.kr()
        },
        jn: function(a) {
            var b = this.D.Tb,
            c = this.D.Mb,
            d = q;
            a < b && (d = o, a = b);
            a > c && (d = o, a = c);
            return {
                zoom: a,
                sC: d
            }
        },
        Ea: u("Ia"),
        Ub: function(a, b) {
            b = b || this.U();
            return this.Rd.Ub(a, b, this.hc, this.Lb(), this.Jb)
        },
        mb: function(a, b) {
            b = b || this.U();
            return this.Rd.mb(a, b, this.hc, this.Lb(), this.Jb)
        },
        Ee: function(a, b) {
            if (a) {
                var c = this.Ub(new H(a.lng, a.lat), b);
                c.x -= this.offsetX;
                c.y -= this.offsetY;
                return c
            }
        },
        NL: function(a, b) {
            if (a) {
                var c = new P(a.x, a.y);
                c.x += this.offsetX;
                c.y += this.offsetY;
                return this.mb(c, b)
            }
        },
        pointToPixelFor3D: function(a, b) {
            var c = map.Jb;
            this.kb === Oa && c && db.ZI(a, this, b)
        },
        a1: function(a, b) {
            var c = map.Jb;
            this.kb === Oa && c && db.YI(a, this, b)
        },
        b1: function(a, b) {
            var c = this,
            d = map.Jb;
            c.kb === Oa && d && db.ZI(a, c,
            function(a) {
                a.x -= c.offsetX;
                a.y -= c.offsetY;
                b && b(a)
            })
        },
        $0: function(a, b) {
            var c = map.Jb;
            this.kb === Oa && c && (a.x += this.offsetX, a.y += this.offsetY, db.YI(a, this, b))
        },
        Kd: function(a) {
            if (!this.Ow()) return new eb;
            var b = a || {},
            a = b.margins || [0, 0, 0, 0],
            c = b.zoom || p,
            b = this.mb({
                x: a[3],
                y: this.height - a[2]
            },
            c),
            a = this.mb({
                x: this.width - a[1],
                y: a[0]
            },
            c);
            return new eb(b, a)
        },
        Ow: function() {
            return !! this.loaded
        },
        XP: function(a, b) {
            for (var c = this.ia(), d = b.margins || [10, 10, 10, 10], e = b.zoomFactor || 0, f = d[1] + d[3], d = d[0] + d[2], g = c.no(), i = c = c.Rl(); i >= g; i--) {
                var k = this.ia().gc(i);
                if (a.GE().lng / k < this.width - f && a.GE().lat / k < this.height - d) break
            }
            i += e;
            i < g && (i = g);
            i > c && (i = c);
            return i
        },
        gs: function(a, b) {
            var c = {
                center: this.za(),
                zoom: this.U()
            };
            if (!a || !a instanceof eb && 0 === a.length || a instanceof eb && a.ej()) return c;
            var d = [];
            a instanceof eb ? (d.push(a.zf()), d.push(a.Ce())) : d = a.slice(0);
            for (var b = b || {},
            e = [], f = 0, g = d.length; f < g; f++) e.push(this.Rd.hm(d[f], this.Jb));
            d = new eb;
            for (f = e.length - 1; 0 <= f; f--) d.extend(e[f]);
            if (d.ej()) return c;
            c = d.za();
            e = this.XP(d, b);
            b.margins && (d = b.margins, f = (d[1] - d[3]) / 2, d = (d[0] - d[2]) / 2, g = this.ia().gc(e), b.offset && (f = b.offset.width, d = b.offset.height), c.lng += g * f, c.lat += g * d);
            c = this.Rd.Yg(c, this.Jb);
            return {
                center: c,
                zoom: e
            }
        },
        fh: function(a, b) {
            var c;
            c = a && a.center ? a: this.gs(a, b);
            var b = b || {},
            d = b.delay || 200;
            if (c.zoom === this.va && b.enableAnimation !== q) {
                var e = this;
                setTimeout(function() {
                    e.$h(c.center, {
                        duration: 210
                    })
                },
                d)
            } else this.Yd(c.center, c.zoom)
        },
        Bf: u("Vd"),
        Pg: function() {
            return this.H.$a && this.H.$a.Ja() ? this.H.$a: p
        },
        getDistance: function(a, b) {
            if (a && b) {
                if (a.Za(b)) return 0;
                var c = 0,
                c = Q.lo(a, b);
                if (c === p || c === j) c = 0;
                return c
            }
        },
        TC: function() {
            var a = [],
            b = this.ka,
            c = this.le;
            if (b) for (var d in b) b[d] instanceof fb && a.push(b[d]);
            if (c) {
                d = 0;
                for (b = c.length; d < b; d++) a.push(c[d])
            }
            return a
        },
        ia: u("kb"),
        xy: function() {
            for (var a = this.H.aE; a < z.Oq.length; a++) z.Oq[a](this);
            this.H.aE = a
        },
        pE: function(a) {
            this.Jb = Oa.Tj(a);
            this.Lv = Oa.RJ(this.Jb);
            this.kb === Oa && this.Rd instanceof gb && (this.Rd.AB = this.Jb)
        },
        setDefaultCursor: function(a) {
            this.D.Kb = a;
            this.platform && (this.platform.style.cursor = this.D.Kb)
        },
        getDefaultCursor: function() {
            return this.D.Kb
        },
        setDraggingCursor: function(a) {
            this.D.kd = a
        },
        getDraggingCursor: function() {
            return this.D.kd
        },
        Rg: da(q),
        zv: function(a, b) {
            b ? this.uh[b] || (this.uh[b] = {}) : b = "custom";
            a.tag = b;
            a instanceof hb && (this.uh[b][a.Q] = a, a.fa(this));
            var c = this;
            I.load("hotspot",
            function() {
                c.xy()
            },
            o)
        },
        kX: function(a, b) {
            b || (b = "custom");
            this.uh[b][a.Q] && delete this.uh[b][a.Q]
        },
        Bl: function(a) {
            a || (a = "custom");
            this.uh[a] = {}
        },
        bu: function() {
            var a = this.Rg() ? this.kb.k.PV: this.kb.no(),
            b = this.Rg() ? this.kb.k.Kw: this.kb.Rl(),
            c = this.D;
            c.Tb = c.eN || a;
            c.Mb = c.dN || b;
            c.Tb < a && (c.Tb = a);
            c.Mb > b && (c.Mb = b)
        },
        setMinZoom: function(a) {
            a > this.D.Mb && (a = this.D.Mb);
            this.D.eN = a;
            this.bI()
        },
        setMaxZoom: function(a) {
            a < this.D.Tb && (a = this.D.Tb);
            this.D.dN = a;
            this.bI()
        },
        bI: function() {
            this.bu();
            var a = this.D;
            this.va < a.Tb ? this.Bc(a.Tb) : this.va > a.Mb && this.Bc(a.Mb);
            var b = new L("onzoomspanchange");
            b.Tb = a.Tb;
            b.Mb = a.Mb;
            this.dispatchEvent(b)
        },
        r0: u("PA"),
        getKey: function() {
            return qa
        },
        Ss: function(a) {
            var b = this;
            window.MPC_Mgr && window.MPC_Mgr[b.Q] && window.MPC_Mgr[b.Q].close();
            b.D.Si = q;
            if (a) {
                b = this;
                a.styleJson && (a.styleStr = b.oY(a.styleJson));
                G() && w.S.hM ? setTimeout(function() {
                    b.D.de = a;
                    b.dispatchEvent(new L("onsetcustomstyles", a))
                },
                50) : (this.D.de = a, this.dispatchEvent(new L("onsetcustomstyles", a)), this.AK(b.D.de.geotableId));
                var c = {
                    style: a.style
                };
                a.features && 0 < a.features.length && (c.features = o);
                a.styleJson && 0 < a.styleJson.length && (c.styleJson = o);
                Pa(5050, c);
                a.style && (c = b.D.Dl[a.style] ? b.D.Dl[a.style].backColor: b.D.Dl.normal.backColor) && (this.Ea().style.backgroundColor = c)
            }
        },
        XV: function(a) {
            this.controls || (this.controls = {
                navigationControl: new ib,
                scaleControl: new jb,
                overviewMapControl: new lb,
                mapTypeControl: new mb
            });
            var b = this,
            c;
            for (c in this.controls) b.XL(b.controls[c]);
            a = a || [];
            w.Zb.Fb(a,
            function(a) {
                b.xv(b.controls[a])
            })
        },
        AK: function(a) {
            a ? this.Ar && this.Ar.Qf === a || (this.dh(this.Ar), this.Ar = new nb({
                geotableId: a
            }), this.Fg(this.Ar)) : this.dh(this.Ar)
        },
        Ib: function() {
            var a = this.U() >= this.D.ME && this.ia() === La && 18 >= this.U(),
            b = q;
            try {
                document.createElement("canvas").getContext("2d"),
                b = o
            } catch(c) {
                b = q
            }
            return a && b
        },
        getCurrentCity: function() {
            return {
                name: this.Vn,
                code: this.dB
            }
        },
        getPanorama: u("G"),
        setPanorama: function(a) {
            this.G = a;
            this.G.qE(this)
        },
        oY: function(a) {
            for (var b = {
                featureType: "t",
                elementType: "e",
                visibility: "v",
                color: "c",
                lightness: "l",
                saturation: "s",
                weight: "w",
                zoom: "z",
                hue: "h"
            },
            c = {
                all: "all",
                geometry: "g",
                "geometry.fill": "g.f",
                "geometry.stroke": "g.s",
                labels: "l",
                "labels.text.fill": "l.t.f",
                "labels.text.stroke": "l.t.s",
                "lables.text": "l.t",
                "labels.icon": "l.i"
            },
            d = [], e = 0, f; f = a[e]; e++) {
                var g = f.stylers;
                delete f.stylers;
                w.extend(f, g);
                var g = [],
                i;
                for (i in b) f[i] && ("elementType" === i ? g.push(b[i] + ":" + c[f[i]]) : g.push(b[i] + ":" + f[i]));
                2 < g.length && d.push(g.join("|"))
            }
            return d.join(",")
        }
    });
    function Pa(a, b) {
        if (a) {
            var b = b || {},
            c = "",
            d;
            for (d in b) c = c + "&" + d + "=" + encodeURIComponent(b[d]);
            var e = function(a) {
                a && (ob = o, setTimeout(function() {
                    qb.src = z.wc + "images/blank.gif?" + a.src
                },
                50))
            },
            f = function() {
                var a = rb.shift();
                a && e(a)
            };
            d = (1E8 * Math.random()).toFixed(0);
            ob ? rb.push({
                src: "product=jsapi&sub_product=jsapi&v=" + z.version + "&sub_product_v=" + z.version + "&t=" + d + "&code=" + a + "&da_src=" + a + c
            }) : e({
                src: "product=jsapi&sub_product=jsapi&v=" + z.version + "&sub_product_v=" + z.version + "&t=" + d + "&code=" + a + "&da_src=" + a + c
            });
            sb || (w.F(qb, "load",
            function() {
                ob = q;
                f()
            }), w.F(qb, "error",
            function() {
                ob = q;
                f()
            }), sb = o)
        }
    }
    var ob, sb, rb = [],
    qb = new Image;
    Pa(5E3, {
        device_pixel_ratio: window.devicePixelRatio,
        platform: navigator.platform
    });
    z.uK = {
        TILE_BASE_URLS: ["ss0.baidu.com/5bwHcj7lABFU8t_jkk_Z1zRvfdw6buu", "ss0.baidu.com/5bwHcj7lABFV8t_jkk_Z1zRvfdw6buu", "ss0.baidu.com/5bwHcj7lABFS8t_jkk_Z1zRvfdw6buu", "ss0.bdstatic.com/5bwHcj7lABFT8t_jkk_Z1zRvfdw6buu", "ss0.bdstatic.com/5bwHcj7lABFY8t_jkk_Z1zRvfdw6buu"],
        TILE_ONLINE_URLS: ["ss0.bdstatic.com/8bo_dTSlR1gBo1vgoIiO_jowehsv", "ss0.bdstatic.com/8bo_dTSlRMgBo1vgoIiO_jowehsv", "ss0.bdstatic.com/8bo_dTSlRcgBo1vgoIiO_jowehsv", "ss0.bdstatic.com/8bo_dTSlRsgBo1vgoIiO_jowehsv", "ss0.bdstatic.com/8bo_dTSlQ1gBo1vgoIiO_jowehsv"],
        TIlE_PERSPECT_URLS: ["ss0.bdstatic.com/-OR1cTe9KgQFm2e88IuM_a", "ss0.bdstatic.com/-ON1cTe9KgQFm2e88IuM_a", "ss0.bdstatic.com/-OZ1cTe9KgQFm2e88IuM_a", "ss0.bdstatic.com/-OV1cTe9KgQFm2e88IuM_a"],
        geolocControl: "sp2.baidu.com/8LkJsjOpB1gCo2Kml5_Y_D3",
        TILES_YUN_HOST: ["sp0.baidu.com/-eR1bSahKgkFkRGko9WTAnF6hhy", "sp0.baidu.com/-eN1bSahKgkFkRGko9WTAnF6hhy", "sp0.baidu.com/-eZ1bSahKgkFkRGko9WTAnF6hhy", "sp0.baidu.com/-eV1bSahKgkFkRGko9WTAnF6hhy"],
        traffic: "sp0.baidu.com/7_AZsjOpB1gCo2Kml5_Y_D3",
        iw_pano: "ss0.bdstatic.com/5LUZemba_QUU8t7mm9GUKT-xh_",
        message: "sp0.baidu.com/7vo0bSba2gU2pMbgoY3K",
        baidumap: "sp0.baidu.com/80MWsjip0QIZ8tyhnq",
        wuxian: "sp0.baidu.com/6a1OdTeaKgQFm2e88IuM_a",
        pano: ["ss0.bdstatic.com/5LUZemba_QUU8t7mm9GUKT-xh_", "ss0.bdstatic.com/5LUZemfa_QUU8t7mm9GUKT-xh_", "ss0.bdstatic.com/5LUZemja_QUU8t7mm9GUKT-xh_"],
        main_domain_nocdn: {
            baidu: "sp0.baidu.com/9_Q4sjOpB1gCo2Kml5_Y_D3",
            other: "sapi.map.baidu.com"
        },
        main_domain_cdn: {
            baidu: ["ss0.bdstatic.com/9_Q4vHSd2RZ3otebn9fN2DJv", "ss0.baidu.com/9_Q4vXSd2RZ3otebn9fN2DJv", "ss0.bdstatic.com/9_Q4vnSd2RZ3otebn9fN2DJv"],
            other: ["sapi.map.baidu.com"]
        },
        map_click: "sp0.baidu.com/80MWbzKh2wt3n2qy8IqW0jdnxx1xbK",
        vector_traffic: "ss0.bdstatic.com/8aZ1cTe9KgQIm2_p8IuM_a"
    };
    z.TV = {
        TILE_BASE_URLS: ["shangetu0.map.bdimg.com", "shangetu1.map.bdimg.com", "shangetu2.map.bdimg.com", "shangetu3.map.bdimg.com", "shangetu4.map.bdimg.com"],
        TILE_ONLINE_URLS: ["online0.map.bdimg.com", "online1.map.bdimg.com", "online2.map.bdimg.com", "online3.map.bdimg.com", "online4.map.bdimg.com"],
        TIlE_PERSPECT_URLS: ["d0.map.baidu.com", "d1.map.baidu.com", "d2.map.baidu.com", "d3.map.baidu.com"],
        geolocControl: "loc.map.baidu.com",
        TILES_YUN_HOST: ["g0.api.map.baidu.com", "g1.api.map.baidu.com", "g2.api.map.baidu.com", "g3.api.map.baidu.com"],
        traffic: "its.map.baidu.com",
        iw_pano: "pcsv0.map.bdimg.com",
        message: "j.map.baidu.com",
        baidumap: "map.baidu.com",
        wuxian: "wuxian.baidu.com",
        pano: ["pcsv0.map.bdimg.com", "pcsv1.map.bdimg.com", "pcsv2.map.bdimg.com"],
        main_domain_nocdn: {
            baidu: "api.map.baidu.com"
        },
        main_domain_cdn: {
            baidu: ["api0.map.bdimg.com", "api1.map.bdimg.com", "api2.map.bdimg.com"]
        },
        map_click: "mapclick.map.baidu.com",
        vector_traffic: "or.map.bdimg.com"
    };
    z.SY = {
        "0": {
            proto: "http://",
            domain: z.TV
        },
        1 : {
            proto: "https://",
            domain: z.uK
        },
        2 : {
            proto: "https://",
            domain: z.uK
        }
    };
    z.Sx = window.HOST_TYPE || "0";
    z.url = z.SY[z.Sx];
    z.Go = z.url.proto + z.url.domain.baidumap + "/";
    z.wc = z.url.proto + ("2" == z.Sx ? z.url.domain.main_domain_nocdn.other: z.url.domain.main_domain_nocdn.baidu) + "/";
    z.da = z.url.proto + ("2" == z.Sx ? z.url.domain.main_domain_cdn.other[0] : z.url.domain.main_domain_cdn.baidu[0]) + "/";
    z.dg = function(a, b) {
        var c, d, b = b || "";
        switch (a) {
        case "main_domain_nocdn":
            c = z.wc + b;
            break;
        case "main_domain_cdn":
            c = z.da + b;
            break;
        default:
            d = z.url.domain[a],
            "[object Array]" == Object.prototype.toString.call(d) ? (c = [], w.Zb.Fb(d,
            function(a, d) {
                c[d] = z.url.proto + a + "/" + b
            })) : c = z.url.proto + z.url.domain[a] + "/" + b
        }
        return c
    };
    function tb(a) {
        var b = {
            duration: 1E3,
            Lc: 30,
            Zn: 0,
            bc: ub.WK,
            Ds: s()
        };
        this.Mf = [];
        if (a) for (var c in a) b[c] = a[c];
        this.k = b;
        if (Va(b.Zn)) {
            var d = this;
            setTimeout(function() {
                d.start()
            },
            b.Zn)
        } else b.Zn != vb && this.start()
    }
    var vb = "INFINITE";
    tb.prototype.start = function() {
        this.Vt = $a();
        this.cz = this.Vt + this.k.duration;
        wb(this)
    };
    tb.prototype.add = function(a) {
        this.Mf.push(a)
    };
    function wb(a) {
        var b = $a();
        b >= a.cz ? (Wa(a.k.la) && a.k.la(a.k.bc(1)), Wa(a.k.finish) && a.k.finish(), 0 < a.Mf.length && (b = a.Mf[0], b.Mf = [].concat(a.Mf.slice(1)), b.start())) : (a.yx = a.k.bc((b - a.Vt) / a.k.duration), Wa(a.k.la) && a.k.la(a.yx), a.CE || (a.fr = setTimeout(function() {
            wb(a)
        },
        1E3 / a.k.Lc)))
    }
    tb.prototype.stop = function(a) {
        this.CE = o;
        for (var b = 0; b < this.Mf.length; b++) this.Mf[b].stop(),
        this.Mf[b] = p;
        this.Mf.length = 0;
        this.fr && (clearTimeout(this.fr), this.fr = p);
        this.k.Ds(this.yx);
        a && (this.cz = this.Vt, wb(this))
    };
    tb.prototype.cancel = ga(1);
    var ub = {
        WK: function(a) {
            return a
        },
        reverse: function(a) {
            return 1 - a
        },
        eC: function(a) {
            return a * a
        },
        dC: function(a) {
            return Math.pow(a, 3)
        },
        fC: function(a) {
            return - (a * (a - 2))
        },
        wJ: function(a) {
            return Math.pow(a - 1, 3) + 1
        },
        vJ: function(a) {
            return 0.5 > a ? 2 * a * a: -2 * (a - 2) * a - 1
        },
        E_: function(a) {
            return 0.5 > a ? 4 * Math.pow(a, 3) : 4 * Math.pow(a - 1, 3) + 1
        },
        F_: function(a) {
            return (1 - Math.cos(Math.PI * a)) / 2
        }
    };
    ub["ease-in"] = ub.eC;
    ub["ease-out"] = ub.fC;
    var E = {
        UE: 34,
        VE: 21,
        WE: new K(21, 32),
        uN: new K(10, 32),
        tN: new K(24, 36),
        sN: new K(12, 36),
        SE: new K(13, 1),
        ea: z.da + "images/",
        TE: z.da + "images/markers_new.png",
        qN: 24,
        rN: 73,
        kB: {
            "\u5317\u4eac": {
                nx: "bj",
                m: new H(116.403874, 39.914889)
            },
            "\u4e0a\u6d77": {
                nx: "sh",
                m: new H(121.487899, 31.249162)
            },
            "\u6df1\u5733": {
                nx: "sz",
                m: new H(114.025974, 22.546054)
            },
            "\u5e7f\u5dde": {
                nx: "gz",
                m: new H(113.30765, 23.120049)
            }
        },
        fontFamily: "arial,sans-serif"
    };
    w.S.Lg ? (w.extend(E, {
        lJ: "url(" + E.ea + "ruler.cur),crosshair",
        Kb: "-moz-grab",
        kd: "-moz-grabbing"
    }), w.platform.OK && (E.fontFamily = "arial,simsun,sans-serif")) : w.S.QI || w.S.hM ? w.extend(E, {
        lJ: "url(" + E.ea + "ruler.cur) 2 6,crosshair",
        Kb: "url(" + E.ea + "openhand.cur) 8 8,default",
        kd: "url(" + E.ea + "closedhand.cur) 8 8,move"
    }) : w.extend(E, {
        lJ: "url(" + E.ea + "ruler.cur),crosshair",
        Kb: "url(" + E.ea + "openhand.cur),default",
        kd: "url(" + E.ea + "closedhand.cur),move"
    });
    function xb(a, b) {
        var c = a.style;
        c.left = b[0] + "px";
        c.top = b[1] + "px"
    }
    function yb(a) {
        0 < w.S.ba ? a.unselectable = "on": a.style.MozUserSelect = "none"
    }
    function zb(a) {
        return a && a.parentNode && 11 != a.parentNode.nodeType
    }
    function Ab(a, b) {
        w.B.Nw(a, "beforeEnd", b);
        return a.lastChild
    }
    function Bb(a) {
        for (var b = {
            left: 0,
            top: 0
        }; a && a.offsetParent;) b.left += a.offsetLeft,
        b.top += a.offsetTop,
        a = a.offsetParent;
        return b
    }
    function oa(a) {
        a = window.event || a;
        a.stopPropagation ? a.stopPropagation() : a.cancelBubble = o
    }
    function Cb(a) {
        a = window.event || a;
        a.preventDefault ? a.preventDefault() : a.returnValue = q;
        return q
    }
    function pa(a) {
        oa(a);
        return Cb(a)
    }
    function Db() {
        var a = document.documentElement,
        b = document.body;
        return a && (a.scrollTop || a.scrollLeft) ? [a.scrollTop, a.scrollLeft] : b ? [b.scrollTop, b.scrollLeft] : [0, 0]
    }
    function Eb(a, b) {
        if (a && b) return Math.round(Math.sqrt(Math.pow(a.x - b.x, 2) + Math.pow(a.y - b.y, 2)))
    }
    function Fb(a, b) {
        var c = [],
        b = b ||
        function(a) {
            return a
        },
        d;
        for (d in a) c.push(d + "=" + b(a[d]));
        return c.join("&")
    }
    function J(a, b, c) {
        var d = document.createElement(a);
        c && (d = document.createElementNS(c, a));
        return w.B.oE(d, b || {})
    }
    function Ua(a) {
        if (a.currentStyle) return a.currentStyle;
        if (a.ownerDocument && a.ownerDocument.defaultView) return a.ownerDocument.defaultView.getComputedStyle(a, p)
    }
    function Wa(a) {
        return "function" == typeof a
    }
    function Va(a) {
        return "number" == typeof a
    }
    function Ya(a) {
        return "string" == typeof a
    }
    function Gb(a) {
        return "undefined" != typeof a
    }
    function Hb(a) {
        return "object" == typeof a
    }
    var Ib = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
    function Jb(a) {
        var b = "",
        c, d, e = "",
        f, g = "",
        i = 0;
        f = /[^A-Za-z0-9\+\/\=]/g;
        if (!a || f.exec(a)) return a;
        a = a.replace(/[^A-Za-z0-9\+\/\=]/g, "");
        do c = Ib.indexOf(a.charAt(i++)),
        d = Ib.indexOf(a.charAt(i++)),
        f = Ib.indexOf(a.charAt(i++)),
        g = Ib.indexOf(a.charAt(i++)),
        c = c << 2 | d >> 4,
        d = (d & 15) << 4 | f >> 2,
        e = (f & 3) << 6 | g,
        b += String.fromCharCode(c),
        64 != f && (b += String.fromCharCode(d)),
        64 != g && (b += String.fromCharCode(e));
        while (i < a.length);
        return b
    }
    var L = w.lang.dy;
    function G() {
        return ! (!w.platform.qD && !w.platform.hW && !w.platform.ck)
    }
    function Ta() {
        return ! (!w.platform.OK && !w.platform.GK && !w.platform.nW)
    }
    function $a() {
        return (new Date).getTime()
    }
    function Kb() {
        var a = document.body.appendChild(J("div"));
        a.innerHTML = '<v:shape id="vml_tester1" adj="1" />';
        var b = a.firstChild;
        if (!b.style) return q;
        b.style.behavior = "url(#default#VML)";
        b = b ? "object" == typeof b.adj: o;
        a.parentNode.removeChild(a);
        return b
    }
    function Lb() {
        return !! document.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#Shape", "1.1")
    }
    function Mb() {
        return !! J("canvas").getContext
    }
    function Nb(a) {
        return a * Math.PI / 180
    }
    z.vW = function() {
        var a = o,
        b = o,
        c = o,
        d = o,
        e = 0,
        f = 0,
        g = 0,
        i = 0;
        return {
            WO: function() {
                e += 1;
                a && (a = q, setTimeout(function() {
                    Pa(5054, {
                        pic: e
                    });
                    a = o;
                    e = 0
                },
                1E4))
            },
            xZ: function() {
                f += 1;
                b && (b = q, setTimeout(function() {
                    Pa(5055, {
                        move: f
                    });
                    b = o;
                    f = 0
                },
                1E4))
            },
            zZ: function() {
                g += 1;
                c && (c = q, setTimeout(function() {
                    Pa(5056, {
                        zoom: g
                    });
                    c = o;
                    g = 0
                },
                1E4))
            },
            yZ: function(a) {
                i += a;
                d && (d = q, setTimeout(function() {
                    Pa(5057, {
                        tile: i
                    });
                    d = o;
                    i = 0
                },
                5E3))
            }
        }
    } ();
    var Za; (function() {
        function a(a) {
            this.$S = a;
            this.timing = {};
            this.start = +new Date
        }
        function b(a, b) {
            if (a.length === +a.length) for (var c = 0,
            d = a.length; c < d && b.call(j, c, a[c], a) !== q; c++);
            else for (c in a) if (a.hasOwnProperty(c) && b.call(j, c, a[c], a) === q) break
        }
        var c = [],
        d = {
            push: function(a) {
                c.push(a);
                if (window.localStorage && window.JSON) try {
                    localStorage.setItem("WPO_NR", JSON.stringify(c))
                } catch(b) {}
            },
            get: function(a) {
                var b = [];
                if (window.localStorage) try {
                    a && localStorage.removeItem("WPO_NR")
                } catch(d) {}
                b = c;
                a && (c = []);
                return b
            }
        },
        e,
        f,
        g,
        i,
        k = {}; (!window.localStorage || !window.JSON) && document.attachEvent && window.attachEvent("onbeforeunload",
        function() {
            l.send()
        });
        var l = {
            send: function(a) {
                var c = [],
                e = [],
                f = a || d.get(o),
                g;
                0 < f.length && (b(f,
                function(d, e) {
                    var f = [];
                    b(e.timing,
                    function(a, b) {
                        f.push('"' + a + '":' + b)
                    });
                    c.push('{"t":{' + f.join(",") + '},"a":' + e.$S + "}"); ! g && (a && e.start) && (g = e.start)
                }), b(k,
                function(a, b) {
                    e.push(a + "=" + b)
                }), e.push("d=[" + c.join(",") + "]"), g ? e.push("_st=" + g) : e.push("_t=" + +new Date), f = new Image, f.src = "http://static.tieba.baidu.com/tb/pms/img/st.gif?" + e.join("&"), window["___pms_img_" + 1 * new Date] = f)
            }
        };
        a.prototype = {
            $b: function(a, b) {
                this.timing[a] = 0 <= b ? b: new Date - this.start
            },
            it: function() {
                this.start = +new Date
            },
            UM: function() {
                this.$b("tt")
            },
            Tx: function() {
                this.$b("vt")
            },
            um: function() {
                f && (d.push(this), d.get().length >= g && l.send())
            },
            error: s()
        };
        Za = {
            li: {
                iD: function(a) {
                    var b = navigator.s_ || navigator.P0 || navigator.Y1 || {
                        type: 0
                    };
                    f = Math.random() <= (a.uX || 0.01);
                    g = a.max || 5;
                    i = a.O0 || b.type;
                    k = {
                        p: a.gX,
                        mnt: i,
                        b: 50
                    };
                    window.localStorage && (window.JSON && window.addEventListener) && (e = d.get(o), window.addEventListener("load",
                    function() {
                        l.send(e)
                    },
                    q))
                },
                Oj: function(b) {
                    return new a(b)
                }
            }
        }
    })();
    Za.li.iD({
        gX: 18,
        uX: 0.1,
        max: 1
    });
    z.wp = {
        hF: "#83a1ff",
        yp: "#808080"
    };
    function Ob(a, b, c) {
        b.km || (b.km = [], b.handle = {});
        b.km.push({
            filter: c,
            Ml: a
        });
        b.addEventListener || (b.addEventListener = function(a, c) {
            b.attachEvent("on" + a, c)
        });
        b.handle.click || (b.addEventListener("click",
        function(a) {
            for (var c = a.target || a.srcElement; c != b;) {
                Pb(b.km,
                function(b, g) {
                    RegExp(g.filter).test(c.getAttribute("filter")) && g.Ml.call(c, a, c.getAttribute("filter"))
                });
                c = c.parentNode
            }
        },
        q), b.handle.click = o)
    }
    function Pb(a, b) {
        for (var c = 0,
        d = a.length; c < d; c++) b(c, a[c])
    };
    function Qb(a, b) {
        if (b) {
            var c = (1E5 * Math.random()).toFixed(0);
            z._rd["_cbk" + c] = function(a) {
                b && b(a);
                delete z._rd["_cbk" + c]
            };
            a += "&callback=BMap._rd._cbk" + c
        }
        var d = J("script", {
            type: "text/javascript"
        });
        d.charset = "utf-8";
        d.src = a;
        d.addEventListener ? d.addEventListener("load",
        function(a) {
            a = a.target;
            a.parentNode.removeChild(a)
        },
        q) : d.attachEvent && d.attachEvent("onreadystatechange",
        function() {
            var a = window.event.srcElement;
            a && ("loaded" == a.readyState || "complete" == a.readyState) && a.parentNode.removeChild(a)
        });
        setTimeout(function() {
            document.getElementsByTagName("head")[0].appendChild(d);
            d = p
        },
        1)
    };
    var Rb = {
        map: "rwuqte",
        common: "co5e1l",
        style: "jshvp1",
        tile: "j55j3v",
        vectordrawlib: "n55sy4",
        newvectordrawlib: "h2vbde",
        groundoverlay: "j0dwvq",
        pointcollection: "agyre2",
        marker: "5jkvtf",
        symbol: "ite40d",
        canvablepath: "1fkm53",
        vmlcontext: "c5w1dn",
        markeranimation: "bkijrk",
        poly: "ux0qtf",
        draw: "31akjj",
        drawbysvg: "j2znyo",
        drawbyvml: "01ybhb",
        drawbycanvas: "fpwz5z",
        infowindow: "5nzisp",
        oppc: "am4vcv",
        opmb: "a4wkhm",
        menu: "nc3jzs",
        control: "1nfumx",
        navictrl: "fgphpn",
        geoctrl: "y1cp1h",
        copyrightctrl: "zpwj0m",
        scommon: "qjt4yo",
        local: "yztxki",
        route: "knh20j",
        othersearch: "uqcfss",
        mapclick: "q2glf2",
        buslinesearch: "vhj41m",
        hotspot: "sdmocv",
        autocomplete: "necqrc",
        coordtrans: "w0uunp",
        coordtransutils: "pqnra1",
        clayer: "vujrrb",
        pservice: "fgydhp",
        pcommon: "qh4nci",
        panorama: "jgd1qp",
        panoramaflash: "xiatqx",
        vector: "0bxorm"
    };
    w.Mx = function() {
        function a(a) {
            return d && !!c[b + a + "_" + Rb[a]]
        }
        var b = "BMap_",
        c = window.localStorage,
        d = "localStorage" in window && c !== p && c !== j;
        return {
            jW: d,
            set: function(a, f) {
                if (d) {
                    for (var g = b + a + "_",
                    i = c.length,
                    k; i--;) k = c.key(i),
                    -1 < k.indexOf(g) && c.removeItem(k);
                    try {
                        c.setItem(b + a + "_" + Rb[a], f)
                    } catch(l) {
                        c.clear()
                    }
                }
            },
            get: function(e) {
                return d && a(e) ? c.getItem(b + e + "_" + Rb[e]) : q
            },
            NI: a
        }
    } ();
    function I() {}
    w.object.extend(I, {
        nj: {
            jF: -1,
            $N: 0,
            qp: 1
        },
        VJ: function() {
            var a = "drawbysvg",
            b = "canvablepath",
            c = z.kI ? "newvectordrawlib": "vectordrawlib";
            G() && Mb() ? a = "drawbycanvas": Lb() ? a = "drawbysvg": Kb() ? (a = "drawbyvml", b = "vmlcontext") : Mb() && (a = "drawbycanvas");
            return {
                tile: [c],
                control: [],
                marker: ["symbol"],
                symbol: ["canvablepath", "common"],
                canvablepath: "canvablepath" === b ? [] : [b],
                vmlcontext: [],
                style: [],
                poly: ["marker", a],
                drawbysvg: ["draw"],
                drawbyvml: ["draw"],
                drawbycanvas: ["draw"],
                infowindow: ["common", "marker"],
                menu: [],
                oppc: [],
                opmb: [],
                scommon: [],
                local: ["scommon"],
                route: ["scommon"],
                othersearch: ["scommon"],
                autocomplete: ["scommon"],
                mapclick: ["scommon"],
                buslinesearch: ["route"],
                hotspot: [],
                coordtransutils: ["coordtrans"],
                clayer: ["tile"],
                pservice: [],
                pcommon: ["style", "pservice"],
                panorama: ["pcommon"],
                panoramaflash: ["pcommon"]
            }
        },
        e1: {},
        bF: {
            oO: z.da + "getmodules?v=2.0&t=20140707",
            ES: 5E3
        },
        IB: q,
        xd: {
            Qk: {},
            Tm: [],
            dv: []
        },
        load: function(a, b, c) {
            var d = this.Ua(a);
            if (d.hd == this.nj.qp) c && b();
            else {
                if (d.hd == this.nj.jF) {
                    this.VI(a);
                    this.UL(a);
                    var e = this;
                    e.IB == q && (e.IB = o, setTimeout(function() {
                        for (var a = [], b = 0, c = e.xd.Tm.length; b < c; b++) {
                            var d = e.xd.Tm[b],
                            l = "";
                            ja.Mx.NI(d) ? l = ja.Mx.get(d) : (l = "", a.push(d + "_" + Rb[d]));
                            e.xd.dv.push({
                                pL: d,
                                JD: l
                            })
                        }
                        e.IB = q;
                        e.xd.Tm.length = 0;
                        0 == a.length ? e.CJ() : Qb(e.bF.oO + "&mod=" + a.join(","))
                    },
                    1));
                    d.hd = this.nj.$N
                }
                d.Zt.push(b)
            }
        },
        VI: function(a) {
            if (a && this.VJ()[a]) for (var a = this.VJ()[a], b = 0; b < a.length; b++) this.VI(a[b]),
            this.xd.Qk[a[b]] || this.UL(a[b])
        },
        UL: function(a) {
            for (var b = 0; b < this.xd.Tm.length; b++) if (this.xd.Tm[b] == a) return;
            this.xd.Tm.push(a)
        },
        tX: function(a, b) {
            var c = this.Ua(a);
            try {
                eval(b)
            } catch(d) {
                return
            }
            c.hd = this.nj.qp;
            for (var e = 0,
            f = c.Zt.length; e < f; e++) c.Zt[e]();
            c.Zt.length = 0
        },
        NI: function(a, b) {
            var c = this;
            c.timeout = setTimeout(function() {
                c.xd.Qk[a].hd != c.nj.qp ? (c.remove(a), c.load(a, b)) : clearTimeout(c.timeout)
            },
            c.bF.ES)
        },
        Ua: function(a) {
            this.xd.Qk[a] || (this.xd.Qk[a] = {},
            this.xd.Qk[a].hd = this.nj.jF, this.xd.Qk[a].Zt = []);
            return this.xd.Qk[a]
        },
        remove: function(a) {
            delete this.Ua(a)
        },
        vT: function(a, b) {
            for (var c = this.xd.dv,
            d = o,
            e = 0,
            f = c.length; e < f; e++)"" == c[e].JD && (c[e].pL == a ? c[e].JD = b: d = q);
            d && this.CJ()
        },
        CJ: function() {
            for (var a = this.xd.dv,
            b = 0,
            c = a.length; b < c; b++) this.tX(a[b].pL, a[b].JD);
            this.xd.dv.length = 0
        }
    });
    function P(a, b) {
        this.x = a || 0;
        this.y = b || 0;
        this.x = this.x;
        this.y = this.y
    }
    P.prototype.Za = function(a) {
        return a && a.x == this.x && a.y == this.y
    };
    function K(a, b) {
        this.width = a || 0;
        this.height = b || 0
    }
    K.prototype.Za = function(a) {
        return a && this.width == a.width && this.height == a.height
    };
    function hb(a, b) {
        a && (this.xb = a, this.Q = "spot" + hb.Q++, b = b || {},
        this.Cg = b.text || "", this.Ku = b.offsets ? b.offsets.slice(0) : [5, 5, 5, 5], this.dI = b.userData || p, this.xh = b.minZoom || p, this.kf = b.maxZoom || p)
    }
    hb.Q = 0;
    w.extend(hb.prototype, {
        fa: function(a) {
            this.xh == p && (this.xh = a.D.Tb);
            this.kf == p && (this.kf = a.D.Mb)
        },
        ha: function(a) {
            a instanceof H && (this.xb = a)
        },
        V: u("xb"),
        Ws: ba("Cg"),
        YC: u("Cg"),
        setUserData: ba("dI"),
        getUserData: u("dI")
    });
    function Sb() {
        this.C = p;
        this.yb = "control";
        this.Da = this.HI = o
    }
    w.lang.ja(Sb, w.lang.ra, "Control");
    w.extend(Sb.prototype, {
        initialize: function(a) {
            this.C = a;
            if (this.A) return a.Ia.appendChild(this.A),
            this.A
        },
        Le: function(a) { ! this.A && (this.initialize && Wa(this.initialize)) && (this.A = this.initialize(a));
            this.k = this.k || {
                Gf: q
            };
            this.BA();
            this.Xu();
            this.A && (this.A.vq = this)
        },
        BA: function() {
            var a = this.A;
            if (a) {
                var b = a.style;
                b.position = "absolute";
                b.zIndex = this.By || "10";
                b.MozUserSelect = "none";
                b.WebkitTextSizeAdjust = "none";
                this.k.Gf || w.B.Xa(a, "BMap_noprint");
                G() || w.F(a, "contextmenu", pa)
            }
        },
        remove: function() {
            this.C = p;
            this.A && (this.A.parentNode && this.A.parentNode.removeChild(this.A), this.A = this.A.vq = p)
        },
        qa: function() {
            this.A = Ab(this.C.Ia, "<div unselectable='on'></div>");
            this.Da == q && w.B.J(this.A);
            return this.A
        },
        Xu: function() {
            this.lc(this.k.anchor)
        },
        lc: function(a) {
            if (this.c_ || !Va(a) || isNaN(a) || a < Tb || 3 < a) a = this.defaultAnchor;
            this.k = this.k || {
                Gf: q
            };
            this.k.oa = this.k.oa || this.defaultOffset;
            var b = this.k.anchor;
            this.k.anchor = a;
            if (this.A) {
                var c = this.A,
                d = this.k.oa.width,
                e = this.k.oa.height;
                c.style.left = c.style.top = c.style.right = c.style.bottom = "auto";
                switch (a) {
                case Tb:
                    c.style.top = e + "px";
                    c.style.left = d + "px";
                    break;
                case Ub:
                    c.style.top = e + "px";
                    c.style.right = d + "px";
                    break;
                case Vb:
                    c.style.bottom = e + "px";
                    c.style.left = d + "px";
                    break;
                case 3:
                    c.style.bottom = e + "px",
                    c.style.right = d + "px"
                }
                c = ["TL", "TR", "BL", "BR"];
                w.B.Xb(this.A, "anchor" + c[b]);
                w.B.Xa(this.A, "anchor" + c[a])
            }
        },
        BC: function() {
            return this.k.anchor
        },
        ge: function(a) {
            a instanceof K && (this.k = this.k || {
                Gf: q
            },
            this.k.oa = new K(a.width, a.height), this.A && this.lc(this.k.anchor))
        },
        Af: function() {
            return this.k.oa
        },
        md: u("A"),
        show: function() {
            this.Da != o && (this.Da = o, this.A && w.B.show(this.A))
        },
        J: function() {
            this.Da != q && (this.Da = q, this.A && w.B.J(this.A))
        },
        isPrintable: function() {
            return !! this.k.Gf
        },
        Ug: function() {
            return ! this.A && !this.C ? q: !!this.Da
        }
    });
    var Tb = 0,
    Ub = 1,
    Vb = 2;
    function ib(a) {
        Sb.call(this);
        a = a || {};
        this.k = {
            Gf: q,
            yE: a.showZoomInfo || o,
            anchor: a.anchor,
            oa: a.offset,
            type: a.type,
            sU: a.enableGeolocation || q
        };
        this.defaultAnchor = G() ? 3 : Tb;
        this.defaultOffset = new K(10, 10);
        this.lc(a.anchor);
        this.Dm(a.type);
        this.cf()
    }
    w.lang.ja(ib, Sb, "NavigationControl");
    w.extend(ib.prototype, {
        initialize: function(a) {
            this.C = a;
            return this.A
        },
        Dm: function(a) {
            this.k.type = Va(a) && 0 <= a && 3 >= a ? a: 0
        },
        wo: function() {
            return this.k.type
        },
        cf: function() {
            var a = this;
            I.load("navictrl",
            function() {
                a.sg()
            })
        }
    });
    function Wb(a) {
        Sb.call(this);
        a = a || {};
        this.k = {
            anchor: a.anchor || Vb,
            oa: a.offset || new K(10, 30),
            y1: a.showAddressBar || q,
            H_: a.enableAutoLocation || q,
            cL: a.locationIcon || p
        };
        var b = this;
        this.By = 1200;
        b.UY = [];
        this.Xd = [];
        I.load("geoctrl",
        function() { (function d() {
                if (0 !== b.Xd.length) {
                    var a = b.Xd.shift();
                    b[a.method].apply(b, a.arguments);
                    d()
                }
            })();
            b.nO()
        });
        Pa(Ja)
    }
    w.lang.ja(Wb, Sb, "GeolocationControl");
    w.extend(Wb.prototype, {
        location: function() {
            this.Xd.push({
                method: "location",
                arguments: arguments
            })
        },
        getAddressComponent: da(p)
    });
    function Xb(a) {
        Sb.call(this);
        a = a || {};
        this.k = {
            Gf: q,
            anchor: a.anchor,
            oa: a.offset
        };
        this.Qb = [];
        this.defaultAnchor = Vb;
        this.defaultOffset = new K(5, 2);
        this.lc(a.anchor);
        this.HI = q;
        this.cf()
    }
    w.lang.ja(Xb, Sb, "CopyrightControl");
    w.object.extend(Xb.prototype, {
        initialize: function(a) {
            this.C = a;
            return this.A
        },
        yv: function(a) {
            if (a && Va(a.id) && !isNaN(a.id)) {
                var b = {
                    bounds: p,
                    content: ""
                },
                c;
                for (c in a) b[c] = a[c];
                if (a = this.Pl(a.id)) for (var d in b) a[d] = b[d];
                else this.Qb.push(b)
            }
        },
        Pl: function(a) {
            for (var b = 0,
            c = this.Qb.length; b < c; b++) if (this.Qb[b].id == a) return this.Qb[b]
        },
        IC: u("Qb"),
        bE: function(a) {
            for (var b = 0,
            c = this.Qb.length; b < c; b++) this.Qb[b].id == a && (r = this.Qb.splice(b, 1), b--, c = this.Qb.length)
        },
        cf: function() {
            var a = this;
            I.load("copyrightctrl",
            function() {
                a.sg()
            })
        }
    });
    function lb(a) {
        Sb.call(this);
        a = a || {};
        this.k = {
            Gf: q,
            size: a.size || new K(150, 150),
            padding: 5,
            Ja: a.isOpen === o ? o: q,
            jZ: 4,
            oa: a.offset,
            anchor: a.anchor
        };
        this.defaultAnchor = 3;
        this.defaultOffset = new K(0, 0);
        this.Mp = this.Np = 13;
        this.lc(a.anchor);
        this.rd(this.k.size);
        this.cf()
    }
    w.lang.ja(lb, Sb, "OverviewMapControl");
    w.extend(lb.prototype, {
        initialize: function(a) {
            this.C = a;
            return this.A
        },
        lc: function(a) {
            Sb.prototype.lc.call(this, a)
        },
        Zd: function() {
            this.Zd.Bn = o;
            this.k.Ja = !this.k.Ja;
            this.A || (this.Zd.Bn = q)
        },
        rd: function(a) {
            a instanceof K || (a = new K(150, 150));
            a.width = 0 < a.width ? a.width: 150;
            a.height = 0 < a.height ? a.height: 150;
            this.k.size = a
        },
        Lb: function() {
            return this.k.size
        },
        Ja: function() {
            return this.k.Ja
        },
        cf: function() {
            var a = this;
            I.load("control",
            function() {
                a.sg()
            })
        }
    });
    function jb(a) {
        Sb.call(this);
        a = a || {};
        this.k = {
            Gf: q,
            color: "black",
            Qc: "metric",
            oa: a.offset
        };
        this.defaultAnchor = Vb;
        this.defaultOffset = new K(81, 18);
        this.lc(a.anchor);
        this.Gh = {
            metric: {
                name: "metric",
                XI: 1,
                zK: 1E3,
                YM: "\u7c73",
                ZM: "\u516c\u91cc"
            },
            us: {
                name: "us",
                XI: 3.2808,
                zK: 5280,
                YM: "\u82f1\u5c3a",
                ZM: "\u82f1\u91cc"
            }
        };
        this.Gh[this.k.Qc] || (this.k.Qc = "metric");
        this.CH = p;
        this.cH = {};
        this.cf()
    }
    w.lang.ja(jb, Sb, "ScaleControl");
    w.object.extend(jb.prototype, {
        initialize: function(a) {
            this.C = a;
            return this.A
        },
        kk: function(a) {
            this.k.color = a + ""
        },
        T_: function() {
            return this.k.color
        },
        vE: function(a) {
            this.k.Qc = this.Gh[a] && this.Gh[a].name || this.k.Qc
        },
        HV: function() {
            return this.k.Qc
        },
        cf: function() {
            var a = this;
            I.load("control",
            function() {
                a.sg()
            })
        }
    });
    var Yb = 0;
    function mb(a) {
        Sb.call(this);
        a = a || {};
        this.defaultAnchor = Ub;
        this.defaultOffset = new K(10, 10);
        this.k = {
            Gf: q,
            Xg: [La, Xa, Qa, Oa],
            XT: ["B_DIMENSIONAL_MAP", "B_SATELLITE_MAP", "B_NORMAL_MAP"],
            type: a.type || Yb,
            oa: a.offset || this.defaultOffset,
            wU: o
        };
        this.lc(a.anchor);
        "[object Array]" == Object.prototype.toString.call(a.mapTypes) && (this.k.Xg = a.mapTypes.slice(0));
        this.cf()
    }
    w.lang.ja(mb, Sb, "MapTypeControl");
    w.object.extend(mb.prototype, {
        initialize: function(a) {
            this.C = a;
            return this.A
        },
        Nx: function(a) {
            this.C.mn = a
        },
        cf: function() {
            var a = this;
            I.load("control",
            function() {
                a.sg()
            },
            o)
        }
    });
    function Zb(a) {
        Sb.call(this);
        a = a || {};
        this.k = {
            Gf: q,
            oa: a.offset,
            anchor: a.anchor
        };
        this.xi = q;
        this.hv = p;
        this.lH = new $b({
            yf: "api"
        });
        this.mH = new ac(p, {
            yf: "api"
        });
        this.defaultAnchor = Ub;
        this.defaultOffset = new K(10, 10);
        this.lc(a.anchor);
        this.cf();
        Pa(wa)
    }
    w.lang.ja(Zb, Sb, "PanoramaControl");
    w.extend(Zb.prototype, {
        initialize: function(a) {
            this.C = a;
            return this.A
        },
        cf: function() {
            var a = this;
            I.load("control",
            function() {
                a.sg()
            })
        }
    });
    function bc(a) {
        w.lang.ra.call(this);
        this.k = {
            Ia: p,
            cursor: "default"
        };
        this.k = w.extend(this.k, a);
        this.yb = "contextmenu";
        this.C = p;
        this.na = [];
        this.of = [];
        this.me = [];
        this.Xv = this.xr = p;
        this.vh = q;
        var b = this;
        I.load("menu",
        function() {
            b.qb()
        })
    }
    w.lang.ja(bc, w.lang.ra, "ContextMenu");
    w.object.extend(bc.prototype, {
        fa: function(a, b) {
            this.C = a;
            this.Vk = b || p
        },
        remove: function() {
            this.C = this.Vk = p
        },
        Av: function(a) {
            if (a && !("menuitem" != a.yb || "" == a.Cg || 0 >= a.Hi)) {
                for (var b = 0,
                c = this.na.length; b < c; b++) if (this.na[b] === a) return;
                this.na.push(a);
                this.of.push(a)
            }
        },
        removeItem: function(a) {
            if (a && "menuitem" == a.yb) {
                for (var b = 0,
                c = this.na.length; b < c; b++) this.na[b] === a && (this.na[b].remove(), this.na.splice(b, 1), c--);
                b = 0;
                for (c = this.of.length; b < c; b++) this.of[b] === a && (this.of[b].remove(), this.of.splice(b, 1), c--)
            }
        },
        VA: function() {
            this.na.push({
                yb: "divider",
                tj: this.me.length
            });
            this.me.push({
                B: p
            })
        },
        dE: function(a) {
            if (this.me[a]) {
                for (var b = 0,
                c = this.na.length; b < c; b++) this.na[b] && ("divider" == this.na[b].yb && this.na[b].tj == a) && (this.na.splice(b, 1), c--),
                this.na[b] && ("divider" == this.na[b].yb && this.na[b].tj > a) && this.na[b].tj--;
                this.me.splice(a, 1)
            }
        },
        md: u("A"),
        show: function() {
            this.vh != o && (this.vh = o)
        },
        J: function() {
            this.vh != q && (this.vh = q)
        },
        JX: function(a) {
            a && (this.k.cursor = a)
        },
        getItem: function(a) {
            return this.of[a]
        }
    });
    var cc = E.ea + "menu_zoom_in.png",
    dc = E.ea + "menu_zoom_out.png";
    function ec(a, b, c) {
        if (a && Wa(b)) {
            w.lang.ra.call(this);
            this.k = {
                width: 100,
                id: "",
                am: ""
            };
            c = c || {};
            this.k.width = 1 * c.width ? c.width: 100;
            this.k.id = c.id ? c.id: "";
            this.k.am = c.iconUrl ? c.iconUrl: "";
            this.Cg = a + "";
            this.Ey = b;
            this.C = p;
            this.yb = "menuitem";
            this.er = this.yu = this.A = this.lh = p;
            this.ph = o;
            var d = this;
            I.load("menu",
            function() {
                d.qb()
            })
        }
    }
    w.lang.ja(ec, w.lang.ra, "MenuItem");
    w.object.extend(ec.prototype, {
        fa: function(a, b) {
            this.C = a;
            this.lh = b
        },
        remove: function() {
            this.C = this.lh = p
        },
        Ws: function(a) {
            a && (this.Cg = a + "")
        },
        Ob: function(a) {
            a && (this.k.am = a)
        },
        md: u("A"),
        enable: function() {
            this.ph = o
        },
        disable: function() {
            this.ph = q
        }
    });
    function eb(a, b) {
        a && !b && (b = a);
        this.re = this.qe = this.we = this.ve = this.jl = this.Tk = p;
        a && (this.jl = new H(a.lng, a.lat), this.Tk = new H(b.lng, b.lat), this.we = a.lng, this.ve = a.lat, this.re = b.lng, this.qe = b.lat)
    }
    w.object.extend(eb.prototype, {
        ej: function() {
            return ! this.jl || !this.Tk
        },
        Za: function(a) {
            return ! (a instanceof eb) || this.ej() ? q: this.Ce().Za(a.Ce()) && this.zf().Za(a.zf())
        },
        Ce: u("jl"),
        zf: u("Tk"),
        JT: function(a) {
            return ! (a instanceof eb) || this.ej() || a.ej() ? q: a.we > this.we && a.re < this.re && a.ve > this.ve && a.qe < this.qe
        },
        za: function() {
            return this.ej() ? p: new H((this.we + this.re) / 2, (this.ve + this.qe) / 2)
        },
        ns: function(a) {
            if (! (a instanceof eb) || Math.max(a.we, a.re) < Math.min(this.we, this.re) || Math.min(a.we, a.re) > Math.max(this.we, this.re) || Math.max(a.ve, a.qe) < Math.min(this.ve, this.qe) || Math.min(a.ve, a.qe) > Math.max(this.ve, this.qe)) return p;
            var b = Math.max(this.we, a.we),
            c = Math.min(this.re, a.re),
            d = Math.max(this.ve, a.ve),
            a = Math.min(this.qe, a.qe);
            return new eb(new H(b, d), new H(c, a))
        },
        sr: function(a) {
            return ! (a instanceof H) || this.ej() ? q: a.lng >= this.we && a.lng <= this.re && a.lat >= this.ve && a.lat <= this.qe
        },
        extend: function(a) {
            if (a instanceof H) {
                var b = a.lng,
                a = a.lat;
                this.jl || (this.jl = new H(0, 0));
                this.Tk || (this.Tk = new H(0, 0));
                if (!this.we || this.we > b) this.jl.lng = this.we = b;
                if (!this.re || this.re < b) this.Tk.lng = this.re = b;
                if (!this.ve || this.ve > a) this.jl.lat = this.ve = a;
                if (!this.qe || this.qe < a) this.Tk.lat = this.qe = a
            }
        },
        GE: function() {
            return this.ej() ? new H(0, 0) : new H(Math.abs(this.re - this.we), Math.abs(this.qe - this.ve))
        }
    });
    function H(a, b) {
        isNaN(a) && (a = Jb(a), a = isNaN(a) ? 0 : a);
        Ya(a) && (a = parseFloat(a));
        isNaN(b) && (b = Jb(b), b = isNaN(b) ? 0 : b);
        Ya(b) && (b = parseFloat(b));
        this.lng = a;
        this.lat = b
    }
    H.FK = function(a) {
        return a && 180 >= a.lng && -180 <= a.lng && 74 >= a.lat && -74 <= a.lat
    };
    H.prototype.Za = function(a) {
        return a && this.lat == a.lat && this.lng == a.lng
    };
    function fc() {}
    fc.prototype.Vg = function() {
        aa("lngLatToPoint\u65b9\u6cd5\u672a\u5b9e\u73b0")
    };
    fc.prototype.bi = function() {
        aa("pointToLngLat\u65b9\u6cd5\u672a\u5b9e\u73b0")
    };
    function gc() {};
    var db = {
        ZI: function(a, b, c) {
            I.load("coordtransutils",
            function() {
                db.eT(a, b, c)
            },
            o)
        },
        YI: function(a, b, c) {
            I.load("coordtransutils",
            function() {
                db.dT(a, b, c)
            },
            o)
        }
    };
    function Q() {}
    Q.prototype = new fc;
    w.extend(Q, {
        EN: 6370996.81,
        nF: [1.289059486E7, 8362377.87, 5591021, 3481989.83, 1678043.12, 0],
        Kt: [75, 60, 45, 30, 15, 0],
        KN: [[1.410526172116255E-8, 8.98305509648872E-6, -1.9939833816331, 200.9824383106796, -187.2403703815547, 91.6087516669843, -23.38765649603339, 2.57121317296198, -0.03801003308653, 1.73379812E7], [ - 7.435856389565537E-9, 8.983055097726239E-6, -0.78625201886289, 96.32687599759846, -1.85204757529826, -59.36935905485877, 47.40033549296737, -16.50741931063887, 2.28786674699375, 1.026014486E7], [ - 3.030883460898826E-8, 8.98305509983578E-6, 0.30071316287616, 59.74293618442277, 7.357984074871, -25.38371002664745, 13.45380521110908, -3.29883767235584, 0.32710905363475, 6856817.37], [ - 1.981981304930552E-8, 8.983055099779535E-6, 0.03278182852591, 40.31678527705744, 0.65659298677277, -4.44255534477492, 0.85341911805263, 0.12923347998204, -0.04625736007561, 4482777.06], [3.09191371068437E-9, 8.983055096812155E-6, 6.995724062E-5, 23.10934304144901, -2.3663490511E-4, -0.6321817810242, -0.00663494467273, 0.03430082397953, -0.00466043876332, 2555164.4], [2.890871144776878E-9, 8.983055095805407E-6, -3.068298E-8, 7.47137025468032, -3.53937994E-6, -0.02145144861037, -1.234426596E-5, 1.0322952773E-4, -3.23890364E-6, 826088.5]],
        kF: [[ - 0.0015702102444, 111320.7020616939, 1704480524535203, -10338987376042340, 26112667856603880, -35149669176653700, 26595700718403920, -10725012454188240, 1800819912950474, 82.5], [8.277824516172526E-4, 111320.7020463578, 6.477955746671607E8, -4.082003173641316E9, 1.077490566351142E10, -1.517187553151559E10, 1.205306533862167E10, -5.124939663577472E9, 9.133119359512032E8, 67.5], [0.00337398766765, 111320.7020202162, 4481351.045890365, -2.339375119931662E7, 7.968221547186455E7, -1.159649932797253E8, 9.723671115602145E7, -4.366194633752821E7, 8477230.501135234, 52.5], [0.00220636496208, 111320.7020209128, 51751.86112841131, 3796837.749470245, 992013.7397791013, -1221952.21711287, 1340652.697009075, -620943.6990984312, 144416.9293806241, 37.5], [ - 3.441963504368392E-4, 111320.7020576856, 278.2353980772752, 2485758.690035394, 6070.750963243378, 54821.18345352118, 9540.606633304236, -2710.55326746645, 1405.483844121726, 22.5], [ - 3.218135878613132E-4, 111320.7020701615, 0.00369383431289, 823725.6402795718, 0.46104986909093, 2351.343141331292, 1.58060784298199, 8.77738589078284, 0.37238884252424, 7.45]],
        Y_: function(a, b) {
            if (!a || !b) return 0;
            var c, d, a = this.sb(a);
            if (!a) return 0;
            c = this.sk(a.lng);
            d = this.sk(a.lat);
            b = this.sb(b);
            return ! b ? 0 : this.Ue(c, this.sk(b.lng), d, this.sk(b.lat))
        },
        lo: function(a, b) {
            if (!a || !b) return 0;
            a.lng = this.QC(a.lng, -180, 180);
            a.lat = this.VC(a.lat, -74, 74);
            b.lng = this.QC(b.lng, -180, 180);
            b.lat = this.VC(b.lat, -74, 74);
            return this.Ue(this.sk(a.lng), this.sk(b.lng), this.sk(a.lat), this.sk(b.lat))
        },
        sb: function(a) {
            if (a === p || a === j) return new H(0, 0);
            var b, c;
            b = new H(Math.abs(a.lng), Math.abs(a.lat));
            for (var d = 0; d < this.nF.length; d++) if (b.lat >= this.nF[d]) {
                c = this.KN[d];
                break
            }
            a = this.$I(a, c);
            return a = new H(a.lng.toFixed(6), a.lat.toFixed(6))
        },
        Eb: function(a) {
            if (a === p || a === j || 180 < a.lng || -180 > a.lng || 90 < a.lat || -90 > a.lat) return new H(0, 0);
            var b, c;
            a.lng = this.QC(a.lng, -180, 180);
            a.lat = this.VC(a.lat, -74, 74);
            b = new H(a.lng, a.lat);
            for (var d = 0; d < this.Kt.length; d++) if (b.lat >= this.Kt[d]) {
                c = this.kF[d];
                break
            }
            if (!c) for (d = this.Kt.length - 1; 0 <= d; d--) if (b.lat <= -this.Kt[d]) {
                c = this.kF[d];
                break
            }
            a = this.$I(a, c);
            return a = new H(a.lng.toFixed(2), a.lat.toFixed(2))
        },
        $I: function(a, b) {
            if (a && b) {
                var c = b[0] + b[1] * Math.abs(a.lng),
                d = Math.abs(a.lat) / b[9],
                d = b[2] + b[3] * d + b[4] * d * d + b[5] * d * d * d + b[6] * d * d * d * d + b[7] * d * d * d * d * d + b[8] * d * d * d * d * d * d,
                c = c * (0 > a.lng ? -1 : 1),
                d = d * (0 > a.lat ? -1 : 1);
                return new H(c, d)
            }
        },
        Ue: function(a, b, c, d) {
            return this.EN * Math.acos(Math.sin(c) * Math.sin(d) + Math.cos(c) * Math.cos(d) * Math.cos(b - a))
        },
        sk: function(a) {
            return Math.PI * a / 180
        },
        G1: function(a) {
            return 180 * a / Math.PI
        },
        VC: function(a, b, c) {
            b != p && (a = Math.max(a, b));
            c != p && (a = Math.min(a, c));
            return a
        },
        QC: function(a, b, c) {
            for (; a > c;) a -= c - b;
            for (; a < b;) a += c - b;
            return a
        }
    });
    w.extend(Q.prototype, {
        hm: function(a) {
            return Q.Eb(a)
        },
        Vg: function(a) {
            a = Q.Eb(a);
            return new P(a.lng, a.lat)
        },
        Yg: function(a) {
            return Q.sb(a)
        },
        bi: function(a) {
            a = new H(a.x, a.y);
            return Q.sb(a)
        },
        Ub: function(a, b, c, d, e) {
            if (a) return a = this.hm(a, e),
            b = this.gc(b),
            new P(Math.round((a.lng - c.lng) / b + d.width / 2), Math.round((c.lat - a.lat) / b + d.height / 2))
        },
        mb: function(a, b, c, d, e) {
            if (a) return b = this.gc(b),
            this.Yg(new H(c.lng + b * (a.x - d.width / 2), c.lat - b * (a.y - d.height / 2)), e)
        },
        gc: function(a) {
            return Math.pow(2, 18 - a)
        }
    });
    function gb() {
        this.AB = "bj"
    }
    gb.prototype = new Q;
    w.extend(gb.prototype, {
        hm: function(a, b) {
            return this.TO(b, Q.Eb(a))
        },
        Yg: function(a, b) {
            return Q.sb(this.UO(b, a))
        },
        lngLatToPointFor3D: function(a, b) {
            var c = this,
            d = Q.Eb(a);
            I.load("coordtrans",
            function() {
                var a = gc.SC(c.AB || "bj", d),
                a = new P(a.x, a.y);
                b && b(a)
            },
            o)
        },
        pointToLngLatFor3D: function(a, b) {
            var c = this,
            d = new H(a.x, a.y);
            I.load("coordtrans",
            function() {
                var a = gc.RC(c.AB || "bj", d),
                a = new H(a.lng, a.lat),
                a = Q.sb(a);
                b && b(a)
            },
            o)
        },
        TO: function(a, b) {
            if (I.Ua("coordtrans").hd == I.nj.qp) {
                var c = gc.SC(a || "bj", b);
                return new H(c.x, c.y)
            }
            I.load("coordtrans", s());
            return new H(0, 0)
        },
        UO: function(a, b) {
            if (I.Ua("coordtrans").hd == I.nj.qp) {
                var c = gc.RC(a || "bj", b);
                return new H(c.lng, c.lat)
            }
            I.load("coordtrans", s());
            return new H(0, 0)
        },
        gc: function(a) {
            return Math.pow(2, 20 - a)
        }
    });
    function hc() {
        this.yb = "overlay"
    }
    w.lang.ja(hc, w.lang.ra, "Overlay");
    hc.Xl = function(a) {
        a *= 1;
        return ! a ? 0 : -1E5 * a << 1
    };
    w.extend(hc.prototype, {
        Le: function(a) {
            if (!this.K && Wa(this.initialize) && (this.K = this.initialize(a))) this.K.style.WebkitUserSelect = "none";
            this.draw()
        },
        initialize: function() {
            aa("initialize\u65b9\u6cd5\u672a\u5b9e\u73b0")
        },
        draw: function() {
            aa("draw\u65b9\u6cd5\u672a\u5b9e\u73b0")
        },
        remove: function() {
            this.K && this.K.parentNode && this.K.parentNode.removeChild(this.K);
            this.K = p;
            this.dispatchEvent(new L("onremove"))
        },
        J: function() {
            this.K && w.B.J(this.K)
        },
        show: function() {
            this.K && w.B.show(this.K)
        },
        Ug: function() {
            return ! this.K || "none" == this.K.style.display || "hidden" == this.K.style.visibility ? q: o
        }
    });
    z.Fe(function(a) {
        function b(a, b) {
            var c = J("div"),
            g = c.style;
            g.position = "absolute";
            g.top = g.left = g.width = g.height = "0";
            g.zIndex = b;
            a.appendChild(c);
            return c
        }
        var c = a.H;
        c.Zc = a.Zc = b(a.platform, 200);
        a.Vd.vC = b(c.Zc, 800);
        a.Vd.ED = b(c.Zc, 700);
        a.Vd.JJ = b(c.Zc, 600);
        a.Vd.yD = b(c.Zc, 500);
        a.Vd.hL = b(c.Zc, 400);
        a.Vd.iL = b(c.Zc, 300);
        a.Vd.aZ = b(c.Zc, 201);
        a.Vd.ys = b(c.Zc, 200)
    });
    function fb() {
        w.lang.ra.call(this);
        hc.call(this);
        this.map = p;
        this.Da = o;
        this.jb = p;
        this.YF = 0
    }
    w.lang.ja(fb, hc, "OverlayInternal");
    w.extend(fb.prototype, {
        initialize: function(a) {
            this.map = a;
            w.lang.ra.call(this, this.Q);
            return p
        },
        vw: u("map"),
        draw: s(),
        remove: function() {
            this.map = p;
            w.lang.Zv(this.Q);
            hc.prototype.remove.call(this)
        },
        J: function() {
            this.Da != q && (this.Da = q)
        },
        show: function() {
            this.Da != o && (this.Da = o)
        },
        Ug: function() {
            return ! this.K ? q: !!this.Da
        },
        Ea: u("K"),
        lM: function(a) {
            var a = a || {},
            b;
            for (b in a) this.z[b] = a[b]
        },
        Xs: ba("zIndex"),
        Ti: function() {
            this.z.Ti = o
        },
        fU: function() {
            this.z.Ti = q
        },
        Mn: ba("Sf"),
        Po: function() {
            this.Sf = p
        }
    });
    function ic() {
        this.map = p;
        this.ka = {};
        this.le = []
    }
    z.Fe(function(a) {
        var b = new ic;
        b.map = a;
        a.ka = b.ka;
        a.le = b.le;
        a.addEventListener("load",
        function(a) {
            b.draw(a)
        });
        a.addEventListener("moveend",
        function(a) {
            b.draw(a)
        });
        w.S.ba && 8 > w.S.ba || "BackCompat" == document.compatMode ? a.addEventListener("zoomend",
        function(a) {
            setTimeout(function() {
                b.draw(a)
            },
            20)
        }) : a.addEventListener("zoomend",
        function(a) {
            b.draw(a)
        });
        a.addEventListener("maptypechange",
        function(a) {
            b.draw(a)
        });
        a.addEventListener("addoverlay",
        function(a) {
            a = a.target;
            if (a instanceof fb) b.ka[a.Q] || (b.ka[a.Q] = a);
            else {
                for (var d = q,
                e = 0,
                f = b.le.length; e < f; e++) if (b.le[e] === a) {
                    d = o;
                    break
                }
                d || b.le.push(a)
            }
        });
        a.addEventListener("removeoverlay",
        function(a) {
            a = a.target;
            if (a instanceof fb) delete b.ka[a.Q];
            else for (var d = 0,
            e = b.le.length; d < e; d++) if (b.le[d] === a) {
                b.le.splice(d, 1);
                break
            }
        });
        a.addEventListener("clearoverlays",
        function() {
            this.Jc();
            for (var a in b.ka) b.ka[a].z.Ti && (b.ka[a].remove(), delete b.ka[a]);
            a = 0;
            for (var d = b.le.length; a < d; a++) b.le[a].Ti != q && (b.le[a].remove(), b.le[a] = p, b.le.splice(a, 1), a--, d--)
        });
        a.addEventListener("infowindowopen",
        function() {
            var a = this.jb;
            a && (w.B.J(a.jc), w.B.J(a.Pb))
        });
        a.addEventListener("movestart",
        function() {
            this.Pg() && this.Pg().IH()
        });
        a.addEventListener("moveend",
        function() {
            this.Pg() && this.Pg().yH()
        })
    });
    ic.prototype.draw = function(a) {
        if (z.vp) {
            var b = z.vp.Vr(this.map);
            "canvas" == b.yb && b.canvas && b.OO(b.canvas.getContext("2d"))
        }
        for (var c in this.ka) this.ka[c].draw(a);
        w.Zb.Fb(this.le,
        function(a) {
            a.draw()
        });
        this.map.H.$a && this.map.H.$a.ha();
        z.vp && b.sE()
    };
    function jc(a) {
        fb.call(this);
        a = a || {};
        this.z = {
            strokeColor: a.strokeColor || "#3a6bdb",
            rc: a.strokeWeight || 5,
            ud: a.strokeOpacity || 0.65,
            strokeStyle: a.strokeStyle || "solid",
            Ti: a.enableMassClear === q ? q: o,
            Wj: p,
            Sl: p,
            xf: a.enableEditing === o ? o: q,
            qL: 5,
            TY: q,
            Qe: a.enableClicking === q ? q: o,
            Th: a.icons && 0 < a.icons.length ? a.icons: p
        };
        0 >= this.z.rc && (this.z.rc = 5);
        if (0 > this.z.ud || 1 < this.z.ud) this.z.ud = 0.65;
        if (0 > this.z.ag || 1 < this.z.ag) this.z.ag = 0.65;
        "solid" != this.z.strokeStyle && "dashed" != this.z.strokeStyle && (this.z.strokeStyle = "solid");
        this.K = p;
        this.Wt = new eb(0, 0);
        this.Ne = [];
        this.Yb = [];
        this.Fa = {}
    }
    w.lang.ja(jc, fb, "Graph");
    jc.rw = function(a) {
        var b = [];
        if (!a) return b;
        Ya(a) && w.Zb.Fb(a.split(";"),
        function(a) {
            a = a.split(",");
            b.push(new H(a[0], a[1]))
        });
        "[object Array]" == Object.prototype.toString.apply(a) && 0 < a.length && (b = a);
        return b
    };
    jc.QD = [0.09, 0.0050, 1.0E-4, 1.0E-5];
    w.extend(jc.prototype, {
        initialize: function(a) {
            this.map = a;
            return p
        },
        draw: s(),
        Xq: function(a) {
            this.Ne.length = 0;
            this.W = jc.rw(a).slice(0);
            this.ih()
        },
        he: function(a) {
            this.Xq(a)
        },
        ih: function() {
            if (this.W) {
                var a = this;
                a.Wt = new eb;
                w.Zb.Fb(this.W,
                function(b) {
                    a.Wt.extend(b)
                })
            }
        },
        be: u("W"),
        Cm: function(a, b) {
            b && this.W[a] && (this.Ne.length = 0, this.W[a] = new H(b.lng, b.lat), this.ih())
        },
        setStrokeColor: function(a) {
            this.z.strokeColor = a
        },
        xV: function() {
            return this.z.strokeColor
        },
        fp: function(a) {
            0 < a && (this.z.rc = a)
        },
        hK: function() {
            return this.z.rc
        },
        dp: function(a) {
            a == j || (1 < a || 0 > a) || (this.z.ud = a)
        },
        yV: function() {
            return this.z.ud
        },
        Qs: function(a) {
            1 < a || 0 > a || (this.z.ag = a)
        },
        XU: function() {
            return this.z.ag
        },
        ep: function(a) {
            "solid" != a && "dashed" != a || (this.z.strokeStyle = a)
        },
        gK: function() {
            return this.z.strokeStyle
        },
        setFillColor: function(a) {
            this.z.fillColor = a || ""
        },
        WU: function() {
            return this.z.fillColor
        },
        Kd: u("Wt"),
        remove: function() {
            this.map && this.map.removeEventListener("onmousemove", this.vu);
            fb.prototype.remove.call(this);
            this.Ne.length = 0
        },
        xf: function() {
            if (! (2 > this.W.length)) {
                this.z.xf = o;
                var a = this;
                I.load("poly",
                function() {
                    a.ql()
                },
                o)
            }
        },
        eU: function() {
            this.z.xf = q;
            var a = this;
            I.load("poly",
            function() {
                a.Mj()
            },
            o)
        }
    });
    function kc(a) {
        fb.call(this);
        this.K = this.map = p;
        this.z = {
            width: 0,
            height: 0,
            oa: new K(0, 0),
            opacity: 1,
            background: "transparent",
            Uw: 1,
            UK: "#000",
            tW: "solid",
            point: p
        };
        this.lM(a);
        this.point = this.z.point
    }
    w.lang.ja(kc, fb, "Division");
    w.extend(kc.prototype, {
        zk: function() {
            var a = this.z,
            b = this.content,
            c = ['<div class="BMap_Division" style="position:absolute;'];
            c.push("width:" + a.width + "px;display:block;");
            c.push("overflow:hidden;");
            "none" != a.borderColor && c.push("border:" + a.Uw + "px " + a.tW + " " + a.UK + ";");
            c.push("opacity:" + a.opacity + "; filter:(opacity=" + 100 * a.opacity + ")");
            c.push("background:" + a.background + ";");
            c.push('z-index:60;">');
            c.push(b);
            c.push("</div>");
            this.K = Ab(this.map.Bf().ED, c.join(""))
        },
        initialize: function(a) {
            this.map = a;
            this.zk();
            this.K && w.F(this.K, G() ? "touchstart": "mousedown",
            function(a) {
                oa(a)
            });
            return this.K
        },
        draw: function() {
            var a = this.map.Ee(this.z.point);
            this.z.oa = new K( - Math.round(this.z.width / 2) - Math.round(this.z.Uw), -Math.round(this.z.height / 2) - Math.round(this.z.Uw));
            this.K.style.left = a.x + this.z.oa.width + "px";
            this.K.style.top = a.y + this.z.oa.height + "px"
        },
        V: function() {
            return this.z.point
        },
        JZ: function() {
            return this.map.Ub(this.V())
        },
        ha: function(a) {
            this.z.point = a;
            this.draw()
        },
        KX: function(a, b) {
            this.z.width = Math.round(a);
            this.z.height = Math.round(b);
            this.K && (this.K.style.width = this.z.width + "px", this.K.style.height = this.z.height + "px", this.draw())
        }
    });
    function lc(a, b, c) {
        a && b && (this.imageUrl = a, this.size = b, a = new K(Math.floor(b.width / 2), Math.floor(b.height / 2)), c = c || {},
        a = c.anchor || a, b = c.imageOffset || new K(0, 0), this.imageSize = c.imageSize, this.anchor = a, this.imageOffset = b, this.infoWindowAnchor = c.infoWindowAnchor || this.anchor, this.printImageUrl = c.printImageUrl || "")
    }
    w.extend(lc.prototype, {
        SX: function(a) {
            a && (this.imageUrl = a)
        },
        cY: function(a) {
            a && (this.printImageUrl = a)
        },
        rd: function(a) {
            a && (this.size = new K(a.width, a.height))
        },
        lc: function(a) {
            a && (this.anchor = new K(a.width, a.height))
        },
        Rs: function(a) {
            a && (this.imageOffset = new K(a.width, a.height))
        },
        UX: function(a) {
            a && (this.infoWindowAnchor = new K(a.width, a.height))
        },
        QX: function(a) {
            a && (this.imageSize = new K(a.width, a.height))
        },
        toString: da("Icon")
    });
    function mc(a, b) {
        if (a) {
            b = b || {};
            this.style = {
                anchor: b.anchor || new K(0, 0),
                fillColor: b.fillColor || "#000",
                ag: b.fillOpacity || 0,
                scale: b.scale || 1,
                rotation: b.rotation || 0,
                strokeColor: b.strokeColor || "#000",
                ud: b.strokeOpacity || 1,
                rc: b.strokeWeight
            };
            this.yb = "number" === typeof a ? a: "UserDefined";
            this.oi = this.style.anchor;
            this.Bq = new K(0, 0);
            this.anchor = p;
            this.oA = a;
            var c = this;
            I.load("symbol",
            function() {
                c.Ym()
            },
            o)
        }
    }
    w.extend(mc.prototype, {
        setPath: ba("oA"),
        setAnchor: function(a) {
            this.oi = this.style.anchor = a
        },
        setRotation: function(a) {
            this.style.rotation = a
        },
        setScale: function(a) {
            this.style.scale = a
        },
        setStrokeWeight: function(a) {
            this.style.rc = a
        },
        setStrokeColor: function(a) {
            a = w.rr.vB(a, this.style.ud);
            this.style.strokeColor = a
        },
        setStrokeOpacity: function(a) {
            this.style.ud = a
        },
        setFillOpacity: function(a) {
            this.style.ag = a
        },
        setFillColor: function(a) {
            this.style.fillColor = a
        }
    });
    function nc(a, b, c, d) {
        a && (this.Pu = {},
        this.IJ = d ? !!d: q, this.Hc = [], this.sY = a instanceof mc ? a: p, this.rH = b === j ? o: !!(b.indexOf("%") + 1), this.Cj = isNaN(parseFloat(b)) ? 1 : this.rH ? parseFloat(b) / 100 : parseFloat(b), this.sH = !!(c.indexOf("%") + 1), this.repeat = c != j ? this.sH ? parseFloat(c) / 100 : parseFloat(c) : 0)
    };
    function oc(a, b) {
        w.lang.ra.call(this);
        this.content = a;
        this.map = p;
        b = b || {};
        this.z = {
            width: b.width || 0,
            height: b.height || 0,
            maxWidth: b.maxWidth || 730,
            oa: b.offset || new K(0, 0),
            title: b.title || "",
            FD: b.maxContent || "",
            Jg: b.enableMaximize || q,
            Or: b.enableAutoPan === q ? q: o,
            hC: b.enableCloseOnClick === q ? q: o,
            margin: b.margin || [10, 10, 40, 10],
            qB: b.collisions || [[10, 10], [10, 10], [10, 10], [10, 10]],
            UV: q,
            PW: b.onClosing || da(o),
            zJ: q,
            mC: b.enableParano === o ? o: q,
            message: b.message,
            oC: b.enableSearchTool === o ? o: q,
            Gw: b.headerContent || "",
            iC: b.enableContentScroll || q
        };
        if (0 != this.z.width && (220 > this.z.width && (this.z.width = 220), 730 < this.z.width)) this.z.width = 730;
        if (0 != this.z.height && (60 > this.z.height && (this.z.height = 60), 650 < this.z.height)) this.z.height = 650;
        if (0 != this.z.maxWidth && (220 > this.z.maxWidth && (this.z.maxWidth = 220), 730 < this.z.maxWidth)) this.z.maxWidth = 730;
        this.Md = q;
        this.ki = E.ea;
        this.Qa = p;
        var c = this;
        I.load("infowindow",
        function() {
            c.qb()
        })
    }
    w.lang.ja(oc, w.lang.ra, "InfoWindow");
    w.extend(oc.prototype, {
        setWidth: function(a) { ! a && 0 != a || (isNaN(a) || 0 > a) || (0 != a && (220 > a && (a = 220), 730 < a && (a = 730)), this.z.width = a)
        },
        setHeight: function(a) { ! a && 0 != a || (isNaN(a) || 0 > a) || (0 != a && (60 > a && (a = 60), 650 < a && (a = 650)), this.z.height = a)
        },
        oM: function(a) { ! a && 0 != a || (isNaN(a) || 0 > a) || (0 != a && (220 > a && (a = 220), 730 < a && (a = 730)), this.z.maxWidth = a)
        },
        qc: function(a) {
            this.z.title = a
        },
        getTitle: function() {
            return this.z.title
        },
        Pc: ba("content"),
        Uj: u("content"),
        Ts: function(a) {
            this.z.FD = a + ""
        },
        Sd: s(),
        Or: function() {
            this.z.Or = o
        },
        disableAutoPan: function() {
            this.z.Or = q
        },
        enableCloseOnClick: function() {
            this.z.hC = o
        },
        disableCloseOnClick: function() {
            this.z.hC = q
        },
        Jg: function() {
            this.z.Jg = o
        },
        bw: function() {
            this.z.Jg = q
        },
        show: function() {
            this.Da = o
        },
        J: function() {
            this.Da = q
        },
        close: function() {
            this.J()
        },
        Yw: function() {
            this.Md = o
        },
        restore: function() {
            this.Md = q
        },
        Ug: function() {
            return this.Ja()
        },
        Ja: da(q),
        V: function() {
            if (this.Qa && this.Qa.V) return this.Qa.V()
        },
        Af: function() {
            return this.z.oa
        }
    });
    Ka.prototype.zb = function(a, b) {
        if (a instanceof oc && b instanceof H) {
            var c = this.H;
            c.jm ? c.jm.ha(b) : (c.jm = new R(b, {
                icon: new lc(E.ea + "blank.gif", {
                    width: 1,
                    height: 1
                }),
                offset: new K(0, 0),
                clickable: q
            }), c.jm.OP = 1);
            this.xa(c.jm);
            c.jm.zb(a)
        }
    };
    Ka.prototype.Jc = function() {
        var a = this.H.$a || this.H.Kk;
        a && a.Qa && a.Qa.Jc()
    };
    fb.prototype.zb = function(a) {
        this.map && (this.map.Jc(), a.Da = o, this.map.H.Kk = a, a.Qa = this, w.lang.ra.call(a, a.Q))
    };
    fb.prototype.Jc = function() {
        this.map && this.map.H.Kk && (this.map.H.Kk.Da = q, w.lang.Zv(this.map.H.Kk.Q), this.map.H.Kk = p)
    };
    function pc(a, b) {
        fb.call(this);
        this.content = a;
        this.K = this.map = p;
        b = b || {};
        this.z = {
            width: 0,
            oa: b.offset || new K(0, 0),
            hp: {
                backgroundColor: "#fff",
                border: "1px solid #f00",
                padding: "1px",
                whiteSpace: "nowrap",
                font: "12px " + E.fontFamily,
                zIndex: "80",
                MozUserSelect: "none"
            },
            position: b.position || p,
            Ti: b.enableMassClear === q ? q: o,
            Qe: o
        };
        0 > this.z.width && (this.z.width = 0);
        Gb(b.enableClicking) && (this.z.Qe = b.enableClicking);
        this.point = this.z.position;
        var c = this;
        I.load("marker",
        function() {
            c.qb()
        })
    }
    w.lang.ja(pc, fb, "Label");
    w.extend(pc.prototype, {
        V: function() {
            return this.Eu ? this.Eu.V() : this.point
        },
        ha: function(a) {
            a instanceof H && !this.ww() && (this.point = this.z.position = new H(a.lng, a.lat))
        },
        Pc: ba("content"),
        rE: function(a) {
            0 <= a && 1 >= a && (this.z.opacity = a)
        },
        ge: function(a) {
            a instanceof K && (this.z.oa = new K(a.width, a.height))
        },
        Af: function() {
            return this.z.oa
        },
        sd: function(a) {
            a = a || {};
            this.z.hp = w.extend(this.z.hp, a)
        },
        di: function(a) {
            return this.sd(a)
        },
        qc: function(a) {
            this.z.title = a || ""
        },
        getTitle: function() {
            return this.z.title
        },
        nM: function(a) {
            this.point = (this.Eu = a) ? this.z.position = a.V() : this.z.position = p
        },
        ww: function() {
            return this.Eu || p
        },
        Uj: u("content")
    });
    function qc(a, b) {
        if (0 !== arguments.length) {
            fb.apply(this, arguments);
            b = b || {};
            this.z = {
                Ta: a,
                opacity: b.opacity || 1,
                cm: b.cm || "",
                Gr: b.displayOnMinLevel || 1,
                Fr: b.displayOnMaxLevel || 19
            };
            var c = this;
            I.load("groundoverlay",
            function() {
                c.qb()
            })
        }
    }
    w.lang.ja(qc, fb, "GroundOverlay");
    w.extend(qc.prototype, {
        setBounds: function(a) {
            this.z.Ta = a
        },
        getBounds: function() {
            return this.z.Ta
        },
        setOpacity: function(a) {
            this.z.opacity = a
        },
        getOpacity: function() {
            return this.z.opacity
        },
        setImageURL: function(a) {
            this.z.cm = a
        },
        getImageURL: function() {
            return this.z.cm
        },
        setDispalyOnMinLevel: function(a) {
            this.z.Gr = a
        },
        getDispalyOnMinLevel: function() {
            return this.z.Gr
        },
        setDispalyOnMaxLevel: function(a) {
            this.z.Fr = a
        },
        getDispalyOnMaxLevel: function() {
            return this.z.Fr
        }
    });
    var rc = 3,
    sc = 4;
    function tc() {
        var a = document.createElement("canvas");
        return ! (!a.getContext || !a.getContext("2d"))
    }
    function uc(a, b) {
        var c = this;
        tc() && (a === j && aa(Error("\u6ca1\u6709\u4f20\u5165points\u6570\u636e")), "[object Array]" !== Object.prototype.toString.call(a) && aa(Error("points\u6570\u636e\u4e0d\u662f\u6570\u7ec4")), b = b || {},
        fb.apply(c, arguments), c.R = {
            W: a
        },
        c.z = {
            shape: b.shape || rc,
            size: b.size || sc,
            color: b.color || "#fa937e",
            Ti: o
        },
        this.lA = [], this.Xd = [], I.load("pointcollection",
        function() {
            for (var a = 0,
            b; b = c.lA[a]; a++) c[b.method].apply(c, b.arguments);
            for (a = 0; b = c.Xd[a]; a++) c[b.method].apply(c, b.arguments)
        }))
    }
    w.lang.ja(uc, fb, "PointCollection");
    w.extend(uc.prototype, {
        initialize: function(a) {
            this.lA && this.lA.push({
                method: "initialize",
                arguments: arguments
            })
        },
        setPoints: function(a) {
            this.Xd && this.Xd.push({
                method: "setPoints",
                arguments: arguments
            })
        },
        setStyles: function(a) {
            this.Xd && this.Xd.push({
                method: "setStyles",
                arguments: arguments
            })
        },
        clear: function() {
            this.Xd && this.Xd.push({
                method: "clear",
                arguments: arguments
            })
        },
        remove: function() {
            this.Xd && this.Xd.push({
                method: "remove",
                arguments: arguments
            })
        }
    });
    var vc = new lc(E.ea + "marker_red_sprite.png", new K(19, 25), {
        anchor: new K(10, 25),
        infoWindowAnchor: new K(10, 0)
    }),
    wc = new lc(E.ea + "marker_red_sprite.png", new K(20, 11), {
        anchor: new K(6, 11),
        imageOffset: new K( - 19, -13)
    });
    function R(a, b) {
        fb.call(this);
        b = b || {};
        this.point = a;
        this.Ip = this.map = p;
        this.z = {
            oa: b.offset || new K(0, 0),
            Tg: b.icon || vc,
            mk: wc,
            title: b.title || "",
            label: p,
            GI: b.baseZIndex || 0,
            Qe: o,
            b2: q,
            vD: q,
            Ti: b.enableMassClear === q ? q: o,
            Rb: q,
            WL: b.raiseOnDrag === o ? o: q,
            cM: q,
            kd: b.draggingCursor || E.kd,
            rotation: b.rotation || 0
        };
        b.icon && !b.shadow && (this.z.mk = p);
        b.enableDragging && (this.z.Rb = b.enableDragging);
        Gb(b.enableClicking) && (this.z.Qe = b.enableClicking);
        var c = this;
        I.load("marker",
        function() {
            c.qb()
        })
    }
    R.Pt = hc.Xl( - 90) + 1E6;
    R.fF = R.Pt + 1E6;
    w.lang.ja(R, fb, "Marker");
    w.extend(R.prototype, {
        Ob: function(a) {
            if (a instanceof lc || a instanceof mc) this.z.Tg = a
        },
        mo: function() {
            return this.z.Tg
        },
        Dx: function(a) {
            a instanceof lc && (this.z.mk = a)
        },
        getShadow: function() {
            return this.z.mk
        },
        Am: function(a) {
            this.z.label = a || p
        },
        OC: function() {
            return this.z.label
        },
        Rb: function() {
            this.z.Rb = o
        },
        OB: function() {
            this.z.Rb = q
        },
        V: u("point"),
        ha: function(a) {
            a instanceof H && (this.point = new H(a.lng, a.lat))
        },
        ei: function(a, b) {
            this.z.vD = !!a;
            a && (this.BF = b || 0)
        },
        qc: function(a) {
            this.z.title = a + ""
        },
        getTitle: function() {
            return this.z.title
        },
        ge: function(a) {
            a instanceof K && (this.z.oa = a)
        },
        Af: function() {
            return this.z.oa
        },
        zm: ba("Ip"),
        cp: function(a) {
            this.z.rotation = a
        },
        eK: function() {
            return this.z.rotation
        }
    });
    function xc(a, b) {
        jc.call(this, b);
        b = b || {};
        this.z.ag = b.fillOpacity ? b.fillOpacity: 0.65;
        this.z.fillColor = "" == b.fillColor ? "": b.fillColor ? b.fillColor: "#fff";
        this.he(a);
        var c = this;
        I.load("poly",
        function() {
            c.qb()
        })
    }
    w.lang.ja(xc, jc, "Polygon");
    w.extend(xc.prototype, {
        he: function(a, b) {
            this.Jn = jc.rw(a).slice(0);
            var c = jc.rw(a).slice(0);
            1 < c.length && c.push(new H(c[0].lng, c[0].lat));
            jc.prototype.he.call(this, c, b)
        },
        Cm: function(a, b) {
            this.Jn[a] && (this.Jn[a] = new H(b.lng, b.lat), this.W[a] = new H(b.lng, b.lat), 0 == a && !this.W[0].Za(this.W[this.W.length - 1]) && (this.W[this.W.length - 1] = new H(b.lng, b.lat)), this.ih())
        },
        be: function() {
            var a = this.Jn;
            0 == a.length && (a = this.W);
            return a
        }
    });
    function yc(a, b) {
        jc.call(this, b);
        this.Xq(a);
        var c = this;
        I.load("poly",
        function() {
            c.qb()
        })
    }
    w.lang.ja(yc, jc, "Polyline");
    function zc(a, b, c) {
        this.point = a;
        this.ma = Math.abs(b);
        xc.call(this, [], c)
    }
    zc.QD = [0.01, 1.0E-4, 1.0E-5, 4.0E-6];
    w.lang.ja(zc, xc, "Circle");
    w.extend(zc.prototype, {
        initialize: function(a) {
            this.map = a;
            this.W = this.ru(this.point, this.ma);
            this.ih();
            return p
        },
        za: u("point"),
        Hf: function(a) {
            a && (this.point = a)
        },
        cK: u("ma"),
        af: function(a) {
            this.ma = Math.abs(a)
        },
        ru: function(a, b) {
            if (!a || !b || !this.map) return [];
            for (var c = [], d = b / 6378800, e = Math.PI / 180 * a.lat, f = Math.PI / 180 * a.lng, g = 0; 360 > g; g += 9) {
                var i = Math.PI / 180 * g,
                k = Math.asin(Math.sin(e) * Math.cos(d) + Math.cos(e) * Math.sin(d) * Math.cos(i)),
                i = new H(((f - Math.atan2(Math.sin(i) * Math.sin(d) * Math.cos(e), Math.cos(d) - Math.sin(e) * Math.sin(k)) + Math.PI) % (2 * Math.PI) - Math.PI) * (180 / Math.PI), k * (180 / Math.PI));
                c.push(i)
            }
            d = c[0];
            c.push(new H(d.lng, d.lat));
            return c
        }
    });
    var Ac = {};
    function Bc(a) {
        this.map = a;
        this.im = [];
        this.If = [];
        this.pg = [];
        this.rT = 300;
        this.$D = 0;
        this.gg = {};
        this.Li = {};
        this.$g = 0;
        this.pD = o;
        this.fJ = {};
        this.tn = this.an(1);
        this.Wc = this.an(2);
        this.Uk = this.an(3);
        a.platform.appendChild(this.tn);
        a.platform.appendChild(this.Wc);
        a.platform.appendChild(this.Uk)
    }
    z.Fe(function(a) {
        var b = new Bc(a);
        b.fa();
        a.hb = b
    });
    w.extend(Bc.prototype, {
        fa: function() {
            var a = this,
            b = a.map;
            b.addEventListener("loadcode",
            function() {
                a.Vw()
            });
            b.addEventListener("addtilelayer",
            function(b) {
                a.Fg(b)
            });
            b.addEventListener("removetilelayer",
            function(b) {
                a.dh(b)
            });
            b.addEventListener("setmaptype",
            function(b) {
                a.mg(b)
            });
            b.addEventListener("zoomstartcode",
            function(b) {
                a.Ac(b)
            });
            b.addEventListener("setcustomstyles",
            function(b) {
                a.Ss(b.target);
                a.Ef(o)
            })
        },
        Vw: function() {
            var a = this;
            if (w.S.ba) try {
                document.execCommand("BackgroundImageCache", q, o)
            } catch(b) {}
            this.loaded || a.Mw();
            a.Ef();
            this.loaded || (this.loaded = o, I.load("tile",
            function() {
                a.mO()
            }))
        },
        Mw: function() {
            for (var a = this.map.ia().wq, b = 0; b < a.length; b++) {
                var c = new Cc;
                w.extend(c, a[b]);
                this.im.push(c);
                c.fa(this.map, this.tn)
            }
            this.Ss()
        },
        an: function(a) {
            var b = J("div");
            b.style.position = "absolute";
            b.style.overflow = "visible";
            b.style.left = b.style.top = "0";
            b.style.zIndex = a;
            return b
        },
        ef: function() {
            this.$g--;
            var a = this;
            this.pD && (this.map.dispatchEvent(new L("onfirsttileloaded")), this.pD = q);
            0 == this.$g && (this.ri && (clearTimeout(this.ri), this.ri = p), this.ri = setTimeout(function() {
                if (a.$g == 0) {
                    a.map.dispatchEvent(new L("ontilesloaded"));
                    a.pD = o
                }
                a.ri = p
            },
            80))
        },
        ZC: function(a, b) {
            return "TILE-" + b.Q + "-" + a[0] + "-" + a[1] + "-" + a[2]
        },
        Jw: function(a) {
            var b = a.tb;
            b && zb(b) && b.parentNode.removeChild(b);
            delete this.gg[a.name];
            a.loaded || (Dc(a), a.tb = p, a.lm = p)
        },
        Wl: function(a, b, c) {
            var d = this.map,
            e = d.ia(),
            f = d.va,
            g = d.hc,
            i = e.gc(f),
            k = this.TJ(),
            l = k[0],
            m = k[1],
            n = k[2],
            t = k[3],
            v = k[4],
            c = "undefined" != typeof c ? c: 0,
            e = e.k.ub,
            k = d.Q.replace(/^TANGRAM_/, "");
            for (this.Dc ? this.Dc.length = 0 : this.Dc = []; l < n; l++) for (var x = m; x < t; x++) {
                var y = l,
                B = x;
                this.Dc.push([y, B]);
                y = k + "_" + b + "_" + y + "_" + B + "_" + f;
                this.fJ[y] = y
            }
            this.Dc.sort(function(a) {
                return function(b, c) {
                    return 0.4 * Math.abs(b[0] - a[0]) + 0.6 * Math.abs(b[1] - a[1]) - (0.4 * Math.abs(c[0] - a[0]) + 0.6 * Math.abs(c[1] - a[1]))
                }
            } ([v[0] - 1, v[1] - 1]));
            g = [Math.round( - g.lng / i), Math.round(g.lat / i)];
            l = -d.offsetY + d.height / 2;
            a.style.left = -d.offsetX + d.width / 2 + "px";
            a.style.top = l + "px";
            this.xe ? this.xe.length = 0 : this.xe = [];
            l = 0;
            for (d = a.childNodes.length; l < d; l++) x = a.childNodes[l],
            x.rq = q,
            this.xe.push(x);
            if (l = this.om) for (var A in l) delete l[A];
            else this.om = {};
            this.ye ? this.ye.length = 0 : this.ye = [];
            l = 0;
            for (d = this.Dc.length; l < d; l++) {
                A = this.Dc[l][0];
                i = this.Dc[l][1];
                x = 0;
                for (m = this.xe.length; x < m; x++) if (n = this.xe[x], n.id == k + "_" + b + "_" + A + "_" + i + "_" + f) {
                    n.rq = o;
                    this.om[n.id] = n;
                    break
                }
            }
            l = 0;
            for (d = this.xe.length; l < d; l++) n = this.xe[l],
            n.rq || this.ye.push(n);
            this.Hm = [];
            x = (e + c) * this.map.D.devicePixelRatio;
            l = 0;
            for (d = this.Dc.length; l < d; l++) A = this.Dc[l][0],
            i = this.Dc[l][1],
            t = A * e + g[0] - c / 2,
            v = ( - 1 - i) * e + g[1] - c / 2,
            y = k + "_" + b + "_" + A + "_" + i + "_" + f,
            m = this.om[y],
            n = p,
            m ? (n = m.style, n.left = t + "px", n.top = v + "px", m.Je || this.Hm.push([A, i, m])) : (0 < this.ye.length ? (m = this.ye.shift(), m.getContext("2d").clearRect( - c / 2, -c / 2, x, x), n = m.style) : (m = document.createElement("canvas"), n = m.style, n.position = "absolute", n.width = e + c + "px", n.height = e + c + "px", this.Qw() && (n.WebkitTransform = "scale(1.001)"), m.setAttribute("width", x), m.setAttribute("height", x), a.appendChild(m)), m.id = y, n.left = t + "px", n.top = v + "px", -1 < y.indexOf("bg") && (t = "#F3F1EC", this.map.D.Rn && (t = this.map.D.Rn), n.background = t ? t: ""), this.Hm.push([A, i, m])),
            m.style.visibility = "";
            l = 0;
            for (d = this.ye.length; l < d; l++) this.ye[l].style.visibility = "hidden";
            return this.Hm
        },
        Qw: function() {
            return /M040/i.test(navigator.userAgent)
        },
        TJ: function() {
            var a = this.map,
            b = a.ia(),
            c = a.va;
            b.gc(c);
            var c = b.cD(c),
            d = a.hc,
            e = Math.ceil(d.lng / c),
            f = Math.ceil(d.lat / c),
            b = b.k.ub,
            c = [e, f, (d.lng - e * c) / c * b, (d.lat - f * c) / c * b];
            return [c[0] - Math.ceil((a.width / 2 - c[2]) / b), c[1] - Math.ceil((a.height / 2 - c[3]) / b), c[0] + Math.ceil((a.width / 2 + c[2]) / b), c[1] + Math.ceil((a.height / 2 + c[3]) / b), c]
        },
        iY: function(a, b, c, d) {
            var e = this;
            e.n_ = b;
            var f = this.map.ia(),
            g = e.ZC(a, c),
            i = f.k.ub,
            b = [a[0] * i + b[0], ( - 1 - a[1]) * i + b[1]],
            k = this.gg[g];
            k && k.tb ? (xb(k.tb, b), d && (d = new P(a[0], a[1]), f = this.map.D.de ? this.map.D.de.style: "normal", d = c.getTilesUrl(d, a[2], f), k.loaded = q, Ec(k, d)), k.loaded ? this.ef() : Fc(k,
            function() {
                e.ef()
            })) : (k = this.Li[g]) && k.tb ? (c.Cb.insertBefore(k.tb, c.Cb.lastChild), this.gg[g] = k, xb(k.tb, b), d && (d = new P(a[0], a[1]), f = this.map.D.de ? this.map.D.de.style: "normal", d = c.getTilesUrl(d, a[2], f), k.loaded = q, Ec(k, d)), k.loaded ? this.ef() : Fc(k,
            function() {
                e.ef()
            })) : (k = i * Math.pow(2, f.Rl() - a[2]), new H(a[0] * k, a[1] * k), d = new P(a[0], a[1]), f = this.map.D.de ? this.map.D.de.style: "normal", d = c.getTilesUrl(d, a[2], f), k = new Gc(this, d, b, a, c), Fc(k,
            function() {
                e.ef()
            }), Hc(k), this.gg[g] = k)
        },
        ef: function() {
            this.$g--;
            var a = this;
            0 == this.$g && (this.ri && (clearTimeout(this.ri), this.ri = p), this.ri = setTimeout(function() {
                if (a.$g == 0) {
                    a.map.dispatchEvent(new L("ontilesloaded"));
                    if (ua) {
                        if (ra && sa && ta) {
                            var b = $a(),
                            c = a.map.Lb();
                            setTimeout(function() {
                                Pa(5030, {
                                    load_script_time: sa - ra,
                                    load_tiles_time: b - ta,
                                    map_width: c.width,
                                    map_height: c.height,
                                    map_size: c.width * c.height
                                })
                            },
                            1E4);
                            va.$b("img_fisrt_loaded");
                            va.$b("map_width", c.width);
                            va.$b("map_height", c.height);
                            va.$b("map_size", c.width * c.height);
                            va.um()
                        }
                        ua = q
                    }
                }
                a.ri = p
            },
            80))
        },
        ZC: function(a, b) {
            return this.map.ia() === Oa ? "TILE-" + b.Q + "-" + this.map.Lv + "-" + a[0] + "-" + a[1] + "-" + a[2] : "TILE-" + b.Q + "-" + a[0] + "-" + a[1] + "-" + a[2]
        },
        Jw: function(a) {
            var b = a.tb;
            b && (Ic(b), zb(b) && b.parentNode.removeChild(b));
            delete this.gg[a.name];
            a.loaded || (Ic(b), Dc(a), a.tb = p, a.lm = p)
        },
        Ef: function(a) {
            var b = this;
            if (b.map.ia() == Oa) I.load("coordtrans",
            function() {
                b.map.Jb || (b.map.Jb = Oa.Tj(b.map.Vn), b.map.Lv = Oa.RJ(b.map.Jb));
                b.ZG()
            },
            o);
            else {
                if (a && a) for (var c in this.Li) delete this.Li[c];
                b.ZG(a)
            }
        },
        ZG: function(a) {
            for (var b = this.im.concat(this.If), c = b.length, d = 0; d < c; d++) {
                var e = b[d];
                if (e.Tb && l.va < e.Tb) break;
                if (e.Gv) {
                    var f = this.Cb = e.Cb;
                    if (a) {
                        var g = f;
                        if (g && g.childNodes) for (var i = g.childNodes.length,
                        k = i - 1; 0 <= k; k--) i = g.childNodes[k],
                        g.removeChild(i),
                        i = p
                    }
                    if (this.map.Ib()) {
                        this.Wc.style.display = "block";
                        f.style.display = "none";
                        this.map.dispatchEvent(new L("vectorchanged"), {
                            isvector: o
                        });
                        continue
                    } else f.style.display = "block",
                    this.Wc.style.display = "none",
                    this.map.dispatchEvent(new L("vectorchanged"), {
                        isvector: q
                    })
                }
                if (!e.QG && !(e.Do && !this.map.Ib() || e.MK && this.map.Ib())) {
                    var l = this.map,
                    m = l.ia(),
                    f = m.so(),
                    i = l.va,
                    n = l.hc;
                    m == Oa && n.Za(new H(0, 0)) && (n = l.hc = f.hm(l.Pe, l.Jb));
                    var t = m.gc(i),
                    i = m.cD(i),
                    f = Math.ceil(n.lng / i),
                    g = Math.ceil(n.lat / i),
                    v = m.k.ub,
                    i = [f, g, (n.lng - f * i) / i * v, (n.lat - g * i) / i * v],
                    k = i[0] - Math.ceil((l.width / 2 - i[2]) / v),
                    f = i[1] - Math.ceil((l.height / 2 - i[3]) / v),
                    g = i[0] + Math.ceil((l.width / 2 + i[2]) / v),
                    x = 0;
                    m === Oa && 15 == l.U() && (x = 1);
                    m = i[1] + Math.ceil((l.height / 2 + i[3]) / v) + x;
                    this.DI = new H(n.lng, n.lat);
                    var y = this.gg,
                    v = -this.DI.lng / t,
                    x = this.DI.lat / t,
                    t = [Math.ceil(v), Math.ceil(x)],
                    n = l.U(),
                    B;
                    for (B in y) {
                        var A = y[B],
                        D = A.info; (D[2] != n || D[2] == n && (k > D[0] || g <= D[0] || f > D[1] || m <= D[1])) && this.Jw(A)
                    }
                    y = -l.offsetX + l.width / 2;
                    A = -l.offsetY + l.height / 2;
                    e.Cb && (e.Cb.style.left = Math.ceil(v + y) - t[0] + "px", e.Cb.style.top = Math.ceil(x + A) - t[1] + "px", e.Cb.style.WebkitTransform = "translate3d(0,0,0)");
                    v = [];
                    for (l.PA = []; k < g; k++) for (x = f; x < m; x++) v.push([k, x]),
                    l.PA.push({
                        x: k,
                        y: x
                    });
                    v.sort(function(a) {
                        return function(b, c) {
                            return 0.4 * Math.abs(b[0] - a[0]) + 0.6 * Math.abs(b[1] - a[1]) - (0.4 * Math.abs(c[0] - a[0]) + 0.6 * Math.abs(c[1] - a[1]))
                        }
                    } ([i[0] - 1, i[1] - 1]));
                    i = v.length;
                    this.$g += i;
                    for (k = 0; k < i; k++) this.iY([v[k][0], v[k][1], n], t, e, a)
                }
            }
        },
        Fg: function(a) {
            var b = this,
            c = a.target,
            a = b.map.Ib();
            if (c instanceof cb) a && !c.dm && (c.fa(this.map, this.Wc), c.dm = o);
            else if (c.Jf && this.map.Fg(c.Jf), c.Do) {
                for (a = 0; a < b.pg.length; a++) if (b.pg[a] == c) return;
                I.load("vector",
                function() {
                    c.fa(b.map, b.Wc);
                    b.pg.push(c)
                },
                o)
            } else {
                for (a = 0; a < b.If.length; a++) if (b.If[a] == c) return;
                c.fa(this.map, this.Uk);
                b.If.push(c)
            }
        },
        dh: function(a) {
            var a = a.target,
            b = this.map.Ib();
            if (a instanceof cb) b && a.dm && (a.remove(), a.dm = q);
            else {
                a.Jf && this.map.dh(a.Jf);
                if (a.Do) for (var b = 0,
                c = this.pg.length; b < c; b++) a == this.pg[b] && this.pg.splice(b, 1);
                else {
                    b = 0;
                    for (c = this.If.length; b < c; b++) a == this.If[b] && this.If.splice(b, 1)
                }
                a.remove()
            }
        },
        mg: function() {
            for (var a = this.im,
            b = 0,
            c = a.length; b < c; b++) a[b].remove();
            delete this.Cb;
            this.im = [];
            this.Li = this.gg = {};
            this.Mw();
            this.Ef()
        },
        Ac: function() {
            var a = this;
            a.bd && w.B.J(a.bd);
            setTimeout(function() {
                a.Ef();
                a.map.dispatchEvent(new L("onzoomend"))
            },
            10)
        },
        Q1: s(),
        Ss: function(a) {
            var b = this.map.ia();
            if (!this.map.Ib() && (a ? this.map.D.pY = a: a = this.map.D.pY, a)) for (var c = p,
            c = "2" == z.Sx ? [z.url.proto + z.url.domain.main_domain_cdn.other[0] + "/"] : [z.url.proto + z.url.domain.main_domain_cdn.baidu[0] + "/", z.url.proto + z.url.domain.main_domain_cdn.baidu[1] + "/", z.url.proto + z.url.domain.main_domain_cdn.baidu[2] + "/"], d = 0, e; e = this.im[d]; d++) if (e.eY == o) {
                b.k.Mb = 18;
                this.map.Rg() && (b.k.Kw = 18);
                e.getTilesUrl = function(b, d) {
                    var e = b.x,
                    k = b.y,
                    l = "customimage/tile?&x=" + e + "&y=" + k + "&z=" + d + "&udt=20150601",
                    l = a.styleStr ? l + ("&styles=" + encodeURIComponent(a.styleStr)) : l + ("&customid=" + a.style);
                    return c[Math.abs(e + k) % c.length] + l
                };
                break
            }
        }
    });
    function Gc(a, b, c, d, e) {
        this.lm = a;
        this.position = c;
        this.$t = [];
        this.name = a.ZC(d, e);
        this.info = d;
        this.aI = e.vs();
        d = J("img");
        yb(d);
        d.LJ = q;
        var f = d.style,
        a = a.map.ia();
        f.position = "absolute";
        f.border = "none";
        f.width = a.k.ub + "px";
        f.height = a.k.ub + "px";
        f.left = c[0] + "px";
        f.top = c[1] + "px";
        f.maxWidth = "none";
        this.tb = d;
        this.src = b;
        Jc && (this.tb.style.opacity = 0);
        var g = this;
        this.tb.onload = function() {
            z.vW.WO();
            g.loaded = o;
            if (g.lm) {
                var a = g.lm,
                b = a.Li;
                if (!b[g.name]) {
                    a.$D++;
                    b[g.name] = g
                }
                if (g.tb && !zb(g.tb) && e.Cb) {
                    e.Cb.appendChild(g.tb);
                    if (w.S.ba <= 6 && w.S.ba > 0 && g.aI) g.tb.style.cssText = g.tb.style.cssText + (';filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="' + g.src + '",sizingMethod=scale);')
                }
                var c = a.$D - a.rT,
                d;
                for (d in b) {
                    if (c <= 0) break;
                    if (!a.gg[d]) {
                        b[d].lm = p;
                        var f = b[d].tb;
                        if (f && f.parentNode) {
                            f.parentNode.removeChild(f);
                            Ic(f)
                        }
                        f = p;
                        b[d].tb = p;
                        delete b[d];
                        a.$D--;
                        c--
                    }
                }
                Jc && new tb({
                    Lc: 20,
                    duration: 200,
                    la: function(a) {
                        if (g.tb && g.tb.style) g.tb.style.opacity = a * 1
                    },
                    finish: function() {
                        g.tb && g.tb.style && delete g.tb.style.opacity
                    }
                });
                Dc(g)
            }
        };
        this.tb.onerror = function() {
            Dc(g);
            if (g.lm) {
                var a = g.lm.map.ia();
                if (a.k.pC) {
                    g.error = o;
                    g.tb.src = a.k.pC;
                    g.tb && !zb(g.tb) && e.Cb.appendChild(g.tb)
                }
            }
        };
        d = p
    }
    function Fc(a, b) {
        a.$t.push(b)
    }
    function Hc(a) {
        a.tb.src = 0 < w.S.ba && 6 >= w.S.ba && a.aI ? E.ea + "blank.gif": "" !== a.src && a.tb.src == a.src ? a.src + "&t = " + Date.now() : a.src
    }
    function Dc(a) {
        for (var b = 0; b < a.$t.length; b++) a.$t[b]();
        a.$t.length = 0
    }
    function Ic(a) {
        if (a) {
            a.onload = a.onerror = p;
            var b = a.attributes,
            c, d, e;
            if (b) {
                d = b.length;
                for (c = 0; c < d; c += 1) e = b[c].name,
                Wa(a[e]) && (a[e] = p)
            }
            if (b = a.children) {
                d = b.length;
                for (c = 0; c < d; c += 1) Ic(a.children[c])
            }
        }
    }
    function Ec(a, b) {
        a.src = b;
        Hc(a)
    }
    var Jc = !w.S.ba || 8 < w.S.ba;
    function Cc(a) {
        this.Lo = a || {};
        this.LT = this.Lo.copyright || p;
        this.PY = this.Lo.transparentPng || q;
        this.Gv = this.Lo.baseLayer || q;
        this.zIndex = this.Lo.zIndex || 0;
        this.Q = Cc.BQ++
    }
    Cc.BQ = 0;
    w.lang.ja(Cc, w.lang.ra, "TileLayer");
    w.extend(Cc.prototype, {
        fa: function(a, b) {
            this.Gv && (this.zIndex = -100);
            this.map = a;
            if (!this.Cb) {
                var c = J("div"),
                d = c.style;
                d.position = "absolute";
                d.overflow = "visible";
                d.zIndex = this.zIndex;
                d.left = Math.ceil( - a.offsetX + a.width / 2) + "px";
                d.top = Math.ceil( - a.offsetY + a.height / 2) + "px";
                b.appendChild(c);
                this.Cb = c
            }
            c = a.ia();
            a.Rg() && c == La && (c.k.ub = 128, d = function(a) {
                return Math.pow(2, 18 - a) * 2
            },
            c.gc = d, c.k.Rd.gc = d)
        },
        remove: function() {
            this.Cb && this.Cb.parentNode && (this.Cb.innerHTML = "", this.Cb.parentNode.removeChild(this.Cb));
            delete this.Cb
        },
        vs: u("PY"),
        getTilesUrl: function(a, b) {
            var c = "";
            this.Lo.tileUrlTemplate && (c = this.Lo.tileUrlTemplate.replace(/\{X\}/, a.x), c = c.replace(/\{Y\}/, a.y), c = c.replace(/\{Z\}/, b));
            return c
        },
        Pl: u("LT"),
        ia: function() {
            return this.kb || La
        }
    });
    function Kc(a, b) {
        Hb(a) ? b = a || {}: (b = b || {},
        b.databoxId = a);
        this.k = {
            gJ: b.databoxId,
            Mg: b.geotableId,
            px: b.q || "",
            kt: b.tags || "",
            filter: b.filter || "",
            Kx: b.sortby || "",
            nY: b.styleId || "",
            rl: b.ak || qa,
            Dv: b.age || 36E5,
            zIndex: 11,
            qW: "VectorCloudLayer",
            bk: b.hotspotName || "vector_md_" + (1E5 * Math.random()).toFixed(0),
            YS: "LBS\u4e91\u9ebb\u70b9\u5c42"
        };
        this.Do = o;
        Cc.call(this, this.k);
        this.$T = z.wc + "geosearch/detail/";
        this.aU = z.wc + "geosearch/v2/detail/";
        this.zo = {}
    }
    w.ja(Kc, Cc, "VectorCloudLayer");
    function Lc(a) {
        a = a || {};
        this.k = w.extend(a, {
            zIndex: 1,
            qW: "VectorTrafficLayer",
            YS: "\u77e2\u91cf\u8def\u51b5\u5c42"
        });
        this.Do = o;
        Cc.call(this, this.k);
        this.LY = z.url.proto + z.url.domain.vector_traffic + "/gvd/?qt=lgvd&styles=pl&layers=tf";
        this.pb = {
            "0": [2, 1354709503, 2, 2, 0, [], 0, 0],
            1 : [2, 1354709503, 3, 2, 0, [], 0, 0],
            10 : [2, -231722753, 2, 2, 0, [], 0, 0],
            11 : [2, -231722753, 3, 2, 0, [], 0, 0],
            12 : [2, -231722753, 4, 2, 0, [], 0, 0],
            13 : [2, -231722753, 5, 2, 0, [], 0, 0],
            14 : [2, -231722753, 6, 2, 0, [], 0, 0],
            15 : [2, -1, 4, 0, 0, [], 0, 0],
            16 : [2, -1, 5.5, 0, 0, [], 0, 0],
            17 : [2, -1, 7, 0, 0, [], 0, 0],
            18 : [2, -1, 8.5, 0, 0, [], 0, 0],
            19 : [2, -1, 10, 0, 0, [], 0, 0],
            2 : [2, 1354709503, 4, 2, 0, [], 0, 0],
            3 : [2, 1354709503, 5, 2, 0, [], 0, 0],
            4 : [2, 1354709503, 6, 2, 0, [], 0, 0],
            5 : [2, -6350337, 2, 2, 0, [], 0, 0],
            6 : [2, -6350337, 3, 2, 0, [], 0, 0],
            7 : [2, -6350337, 4, 2, 0, [], 0, 0],
            8 : [2, -6350337, 5, 2, 0, [], 0, 0],
            9 : [2, -6350337, 6, 2, 0, [], 0, 0]
        }
    }
    w.ja(Lc, Cc, "VectorTrafficLayer");
    function cb(a) {
        this.sT = [z.url.proto + z.url.domain.TILE_ONLINE_URLS[1] + "/gvd/?", z.url.proto + z.url.domain.TILE_ONLINE_URLS[2] + "/gvd/?", z.url.proto + z.url.domain.TILE_ONLINE_URLS[3] + "/gvd/?", z.url.proto + z.url.domain.TILE_ONLINE_URLS[4] + "/gvd/?"];
        this.k = {
            HJ: q
        };
        for (var b in a) this.k[b] = a[b];
        this.Fh = this.mh = this.Ka = this.A = this.C = p;
        this.SK = 0;
        var c = this;
        I.load("vector",
        function() {
            c.cf()
        })
    }
    w.extend(cb.prototype, {
        fa: function(a, b) {
            this.C = a;
            this.A = b
        },
        remove: function() {
            this.A = this.C = p
        }
    });
    function Mc(a) {
        Cc.call(this, a);
        this.k = a || {};
        this.MK = o;
        this.Jf = new Lc;
        this.Jf.Qx = this;
        if (this.k.predictDate) {
            if (1 > this.k.predictDate.weekday || 7 < this.k.predictDate.weekday) this.k.predictDate = 1;
            if (0 > this.k.predictDate.hour || 23 < this.k.predictDate.hour) this.k.predictDate.hour = 0
        }
        this.DS = z.url.proto + z.url.domain.traffic + ":8002/traffic/"
    }
    Mc.prototype = new Cc;
    Mc.prototype.fa = function(a, b) {
        Cc.prototype.fa.call(this, a, b);
        this.C = a
    };
    Mc.prototype.vs = da(o);
    Mc.prototype.getTilesUrl = function(a, b) {
        var c = "";
        this.k.predictDate ? c = "HistoryService?day=" + (this.k.predictDate.weekday - 1) + "&hour=" + this.k.predictDate.hour + "&t=" + (new Date).getTime() + "&": (c = "TrafficTileService?time=" + (new Date).getTime() + "&", this.C.Rg() || (c += "label=web2D&v=016&"));
        return (this.DS + c + "level=" + b + "&x=" + a.x + "&y=" + a.y).replace(/-(\d+)/gi, "M$1")
    };
    var Nc = [z.url.proto + z.url.domain.TILES_YUN_HOST[0] + "/georender/gss", z.url.proto + z.url.domain.TILES_YUN_HOST[1] + "/georender/gss", z.url.proto + z.url.domain.TILES_YUN_HOST[2] + "/georender/gss", z.url.proto + z.url.domain.TILES_YUN_HOST[3] + "/georender/gss"],
    Oc = 100;
    function nb(a, b) {
        Cc.call(this);
        var c = this;
        this.MK = o;
        var d = q;
        try {
            document.createElement("canvas").getContext("2d"),
            d = o
        } catch(e) {
            d = q
        }
        d && (this.Jf = new Kc(a, b), this.Jf.Qx = this);
        Hb(a) ? b = a || {}: (c.Vp = a, b = b || {});
        b.geotableId && (c.Qf = b.geotableId);
        b.databoxId && (c.Vp = b.databoxId);
        d = z.wc + "geosearch";
        c.oc = {
            cX: b.pointDensity || Oc,
            RV: d + "/detail/",
            SV: d + "/v2/detail/",
            Dv: b.age || 36E5,
            px: b.q || "",
            yY: "png",
            w0: [5, 5, 5, 5],
            pW: {
                backgroundColor: "#FFFFD5",
                borderColor: "#808080"
            },
            rl: b.ak || qa,
            kt: b.tags || "",
            filter: b.filter || "",
            Kx: b.sortby || "",
            bk: b.hotspotName || "tile_md_" + (1E5 * Math.random()).toFixed(0)
        };
        I.load("clayer",
        function() {
            c.je()
        })
    }
    nb.prototype = new Cc;
    nb.prototype.fa = function(a, b) {
        Cc.prototype.fa.call(this, a, b);
        this.C = a
    };
    nb.prototype.getTilesUrl = function(a, b) {
        var c = a.x,
        d = a.y,
        e = this.oc,
        c = Nc[Math.abs(c + d) % Nc.length] + "/image?grids=" + c + "_" + d + "_" + b + "&q=" + e.px + "&tags=" + e.kt + "&filter=" + e.filter + "&sortby=" + e.Kx + "&ak=" + this.oc.rl + "&age=" + e.Dv + "&page_size=" + e.cX + "&format=" + e.yY;
        this.Qf ? c += "&geotable_id=" + this.Qf: this.Vp && (c += "&databox_id=" + this.Vp);
        return c
    };
    nb.aS = /^point\(|\)$/ig;
    nb.bS = /\s+/;
    nb.dS = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;
    function Pc(a, b, c) {
        this.Me = a;
        this.wq = b instanceof Cc ? [b] : b.slice(0);
        c = c || {};
        this.k = {
            zY: c.tips || "",
            zD: "",
            Tb: c.minZoom || 3,
            Mb: c.maxZoom || 18,
            PV: c.minZoom || 3,
            Kw: c.maxZoom || 18,
            ub: 256,
            xY: c.textColor || "black",
            pC: c.errorImageUrl || "",
            Rd: c.projection || new Q
        };
        1 <= this.wq.length && (this.wq[0].Gv = o);
        w.extend(this.k, c)
    }
    w.extend(Pc.prototype, {
        getName: u("Me"),
        fs: function() {
            return this.k.zY
        },
        d0: function() {
            return this.k.zD
        },
        DV: function() {
            return this.wq[0]
        },
        q0: u("wq"),
        EV: function() {
            return this.k.ub
        },
        no: function() {
            return this.k.Tb
        },
        Rl: function() {
            return this.k.Mb
        },
        setMaxZoom: function(a) {
            this.k.Mb = a
        },
        es: function() {
            return this.k.xY
        },
        so: function() {
            return this.k.Rd
        },
        Z_: function() {
            return this.k.pC
        },
        EV: function() {
            return this.k.ub
        },
        gc: function(a) {
            return Math.pow(2, 18 - a)
        },
        cD: function(a) {
            return this.gc(a) * this.k.ub
        }
    });
    var Qc = [z.url.proto + z.url.domain.TILE_BASE_URLS[0] + "/it/", z.url.proto + z.url.domain.TILE_BASE_URLS[1] + "/it/", z.url.proto + z.url.domain.TILE_BASE_URLS[2] + "/it/", z.url.proto + z.url.domain.TILE_BASE_URLS[3] + "/it/", z.url.proto + z.url.domain.TILE_BASE_URLS[4] + "/it/"],
    Rc = [z.url.proto + z.url.domain.TILE_ONLINE_URLS[0] + "/tile/", z.url.proto + z.url.domain.TILE_ONLINE_URLS[1] + "/tile/", z.url.proto + z.url.domain.TILE_ONLINE_URLS[2] + "/tile/", z.url.proto + z.url.domain.TILE_ONLINE_URLS[3] + "/tile/", z.url.proto + z.url.domain.TILE_ONLINE_URLS[4] + "/tile/"],
    Sc = {
        dark: "dl",
        light: "ll",
        normal: "pl"
    },
    Tc = new Cc;
    Tc.eY = o;
    Tc.getTilesUrl = function(a, b, c) {
        var d = a.x,
        a = a.y,
        e = "pl",
        f = 1;
        this.map.Rg(); ! G() && 2 <= window.devicePixelRatio && (f = 2);
        e = Sc[c];
        return (Rc[Math.abs(d + a) % Rc.length] + "?qt=tile&x=" + (d + "").replace(/-/gi, "M") + "&y=" + (a + "").replace(/-/gi, "M") + "&z=" + b + "&styles=" + e + "&scaler=" + f + (6 == w.S.ba ? "&color_dep=32&colors=50": "") + "&udt=20150528").replace(/-(\d+)/gi, "M$1")
    };
    var La = new Pc("\u5730\u56fe", Tc, {
        tips: "\u663e\u793a\u666e\u901a\u5730\u56fe",
        maxZoom: 19
    }),
    Uc = new Cc;
    Uc.JM = [z.url.proto + z.url.domain.TIlE_PERSPECT_URLS[0] + "/resource/mappic/", z.url.proto + z.url.domain.TIlE_PERSPECT_URLS[1] + "/resource/mappic/", z.url.proto + z.url.domain.TIlE_PERSPECT_URLS[2] + "/resource/mappic/", z.url.proto + z.url.domain.TIlE_PERSPECT_URLS[3] + "/resource/mappic/"];
    Uc.getTilesUrl = function(a, b) {
        var c = a.x,
        d = a.y,
        e = 256 * Math.pow(2, 20 - b),
        d = Math.round((9998336 - e * d) / e) - 1;
        return url = this.JM[Math.abs(c + d) % this.JM.length] + this.map.Jb + "/" + this.map.Lv + "/3/lv" + (21 - b) + "/" + c + "," + d + ".jpg"
    };
    var Oa = new Pc("\u4e09\u7ef4", Uc, {
        tips: "\u663e\u793a\u4e09\u7ef4\u5730\u56fe",
        minZoom: 15,
        maxZoom: 20,
        textColor: "white",
        projection: new gb
    });
    Oa.gc = function(a) {
        return Math.pow(2, 20 - a)
    };
    Oa.Tj = function(a) {
        if (!a) return "";
        var b = E.kB,
        c;
        for (c in b) if ( - 1 < a.search(c)) return b[c].nx;
        return ""
    };
    Oa.RJ = function(a) {
        return {
            bj: 2,
            gz: 1,
            sz: 14,
            sh: 4
        } [a]
    };
    var Vc = new Cc({
        Gv: o
    });
    Vc.getTilesUrl = function(a, b) {
        var c = a.x,
        d = a.y;
        return (Qc[Math.abs(c + d) % Qc.length] + "u=x=" + c + ";y=" + d + ";z=" + b + ";v=009;type=sate&fm=46&udt=20141015").replace(/-(\d+)/gi, "M$1")
    };
    var Xa = new Pc("\u536b\u661f", Vc, {
        tips: "\u663e\u793a\u536b\u661f\u5f71\u50cf",
        minZoom: 1,
        maxZoom: 19,
        textColor: "white"
    }),
    Wc = new Cc({
        transparentPng: o
    });
    Wc.getTilesUrl = function(a, b) {
        var c = a.x,
        d = a.y;
        return (Rc[Math.abs(c + d) % Rc.length] + "?qt=tile&x=" + (c + "").replace(/-/gi, "M") + "&y=" + (d + "").replace(/-/gi, "M") + "&z=" + b + "&styles=sl" + (6 == w.S.ba ? "&color_dep=32&colors=50": "") + "&udt=20141015").replace(/-(\d+)/gi, "M$1")
    };
    var Qa = new Pc("\u6df7\u5408", [Vc, Wc], {
        tips: "\u663e\u793a\u5e26\u6709\u8857\u9053\u7684\u536b\u661f\u5f71\u50cf",
        labelText: "\u8def\u7f51",
        minZoom: 1,
        maxZoom: 19,
        textColor: "white"
    });
    var Xc = 1,
    S = {};
    window.mZ = S;
    function T(a, b) {
        w.lang.ra.call(this);
        this.fd = {};
        this.Bm(a);
        b = b || {};
        b.aa = b.renderOptions || {};
        this.k = {
            aa: {
                Ca: b.aa.panel || p,
                map: b.aa.map || p,
                Gg: b.aa.autoViewport || o,
                Ns: b.aa.selectFirstResult,
                js: b.aa.highlightMode,
                Rb: b.aa.enableDragging || q
            },
            gx: b.onSearchComplete || s(),
            FL: b.onMarkersSet || s(),
            EL: b.onInfoHtmlSet || s(),
            HL: b.onResultsHtmlSet || s(),
            DL: b.onGetBusListComplete || s(),
            CL: b.onGetBusLineComplete || s(),
            AL: b.onBusListHtmlSet || s(),
            zL: b.onBusLineHtmlSet || s(),
            ND: b.onPolylinesSet || s(),
            Qo: b.reqFrom || ""
        };
        this.k.aa.Gg = "undefined" != typeof b && "undefined" != typeof b.renderOptions && "undefined" != typeof b.renderOptions.autoViewport ? b.renderOptions.autoViewport: o;
        this.k.aa.Ca = w.tc(this.k.aa.Ca)
    }
    w.ja(T, w.lang.ra);
    w.extend(T.prototype, {
        getResults: function() {
            return this.vc ? this.pi: this.$
        },
        enableAutoViewport: function() {
            this.k.aa.Gg = o
        },
        disableAutoViewport: function() {
            this.k.aa.Gg = q
        },
        Bm: function(a) {
            a && (this.fd.src = a)
        },
        tE: function(a) {
            this.k.gx = a || s()
        },
        setMarkersSetCallback: function(a) {
            this.k.FL = a || s()
        },
        setPolylinesSetCallback: function(a) {
            this.k.ND = a || s()
        },
        setInfoHtmlSetCallback: function(a) {
            this.k.EL = a || s()
        },
        setResultsHtmlSetCallback: function(a) {
            this.k.HL = a || s()
        },
        Ul: u("hd")
    });
    var Yc = {
        pF: z.wc,
        eb: function(a, b, c, d, e) {
            var f = (1E5 * Math.random()).toFixed(0);
            z._rd["_cbk" + f] = function(b) {
                c = c || {};
                a && a(b, c);
                delete z._rd["_cbk" + f]
            };
            d = d || "";
            b = c && c.bN ? Fb(b, encodeURI) : Fb(b, encodeURIComponent);
            this.pF = c && c.Qr ? c.bM ? c.bM: z.Go: z.wc;
            d = this.pF + d + "?" + b + "&ie=utf-8&oue=1&fromproduct=jsapi";
            e || (d += "&res=api");
            Qb(d + ("&callback=BMap._rd._cbk" + f))
        }
    };
    window.tZ = Yc;
    z._rd = {};
    var N = {};
    window.sZ = N;
    N.YL = function(a) {
        return a.replace(/<\/?b>/g, "")
    };
    N.XW = function(a) {
        return a.replace(/([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0|[1-9]\d*),([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0|[1-9]\d*)(,)/g, "$1,$2;")
    };
    N.YW = function(a, b) {
        return a.replace(RegExp("(((-?\\d+)(\\.\\d+)?),((-?\\d+)(\\.\\d+)?);)(((-?\\d+)(\\.\\d+)?),((-?\\d+)(\\.\\d+)?);){" + b + "}", "ig"), "$1")
    };
    var Zc = 2,
    $c = 3,
    ad = 0,
    bd = "bt",
    cd = "nav",
    dd = "walk",
    ed = "bl",
    fd = "bsl",
    gd = 14,
    hd = 15,
    id = 18,
    jd = 20,
    kd = 31;
    z.I = window.Instance = w.lang.Ld;
    function ld(a, b, c) {
        w.lang.ra.call(this);
        if (a) {
            this.Ia = "object" == typeof a ? a: w.tc(a);
            this.page = 1;
            this.nd = 100;
            this.EI = "pg";
            this.Ff = 4;
            this.JI = b;
            this.update = o;
            a = {
                page: 1,
                Ge: 100,
                nd: 100,
                Ff: 4,
                EI: "pg",
                update: o
            };
            c || (c = a);
            for (var d in c)"undefined" != typeof c[d] && (this[d] = c[d]);
            this.la()
        }
    }
    w.extend(ld.prototype, {
        la: function() {
            this.fa()
        },
        fa: function() {
            this.xT();
            this.Ia.innerHTML = this.RT()
        },
        xT: function() {
            isNaN(parseInt(this.page)) && (this.page = 1);
            isNaN(parseInt(this.nd)) && (this.nd = 1);
            1 > this.page && (this.page = 1);
            1 > this.nd && (this.nd = 1);
            this.page > this.nd && (this.page = this.nd);
            this.page = parseInt(this.page);
            this.nd = parseInt(this.nd)
        },
        h0: function() {
            location.search.match(RegExp("[?&]?" + this.EI + "=([^&]*)[&$]?", "gi"));
            this.page = RegExp.$1
        },
        RT: function() {
            var a = [],
            b = this.page - 1,
            c = this.page + 1;
            a.push('<p style="margin:0;padding:0;white-space:nowrap">');
            if (! (1 > b)) {
                if (this.page >= this.Ff) {
                    var d;
                    a.push('<span style="margin-right:3px"><a style="color:#7777cc" href="javascript:void(0)" onclick="{temp1}">\u9996\u9875</a></span>'.replace("{temp1}", "BMap.I('" + this.Q + "').toPage(1);"))
                }
                a.push('<span style="margin-right:3px"><a style="color:#7777cc" href="javascript:void(0)" onclick="{temp2}">\u4e0a\u4e00\u9875</a></span>'.replace("{temp2}", "BMap.I('" + this.Q + "').toPage(" + b + ");"))
            }
            if (this.page < this.Ff) d = 0 == this.page % this.Ff ? this.page - this.Ff - 1 : this.page - this.page % this.Ff + 1,
            b = d + this.Ff - 1;
            else {
                d = Math.floor(this.Ff / 2);
                var e = this.Ff % 2 - 1,
                b = this.nd > this.page + d ? this.page + d: this.nd;
                d = this.page - d - e
            }
            this.page > this.nd - this.Ff && this.page >= this.Ff && (d = this.nd - this.Ff + 1, b = this.nd);
            for (e = d; e <= b; e++) 0 < e && (e == this.page ? a.push('<span style="margin-right:3px">' + e + "</span>") : 1 <= e && e <= this.nd && (d = '<span><a style="color:#7777cc;margin-right:3px" href="javascript:void(0)" onclick="{temp3}">[' + e + "]</a></span>", a.push(d.replace("{temp3}", "BMap.I('" + this.Q + "').toPage(" + e + ");"))));
            c > this.nd || a.push('<span><a style="color:#7777cc" href="javascript:void(0)" onclick="{temp4}">\u4e0b\u4e00\u9875</a></span>'.replace("{temp4}", "BMap.I('" + this.Q + "').toPage(" + c + ");"));
            a.push("</p>");
            return a.join("")
        },
        toPage: function(a) {
            a = a ? a: 1;
            "function" == typeof this.JI && (this.JI(a), this.page = a);
            this.update && this.la()
        }
    });
    function bb(a, b) {
        T.call(this, a, b);
        b = b || {};
        b.renderOptions = b.renderOptions || {};
        this.bp(b.pageCapacity);
        "undefined" != typeof b.renderOptions.selectFirstResult && !b.renderOptions.selectFirstResult ? this.PB() : this.kC();
        this.ka = [];
        this.bf = [];
        this.La = -1;
        this.Na = [];
        var c = this;
        I.load("local",
        function() {
            c.Iy()
        },
        o)
    }
    w.ja(bb, T, "LocalSearch");
    bb.sp = 10;
    bb.qZ = 1;
    bb.Qm = 100;
    bb.eF = 2E3;
    bb.mF = 1E5;
    w.extend(bb.prototype, {
        search: function(a, b) {
            this.Na.push({
                method: "search",
                arguments: [a, b]
            })
        },
        ym: function(a, b, c) {
            this.Na.push({
                method: "searchInBounds",
                arguments: [a, b, c]
            })
        },
        Xo: function(a, b, c, d) {
            this.Na.push({
                method: "searchNearby",
                arguments: [a, b, c, d]
            })
        },
        ze: function() {
            delete this.ta;
            delete this.hd;
            delete this.$;
            delete this.T;
            this.La = -1;
            this.fb();
            this.k.aa.Ca && (this.k.aa.Ca.innerHTML = "")
        },
        Yl: s(),
        kC: function() {
            this.k.aa.Ns = o
        },
        PB: function() {
            this.k.aa.Ns = q
        },
        bp: function(a) {
            this.k.gk = "number" == typeof a && !isNaN(a) ? 1 > a ? bb.sp: a > bb.Qm ? bb.sp: a: bb.sp
        },
        Ve: function() {
            return this.k.gk
        },
        toString: da("LocalSearch")
    });
    var md = bb.prototype;
    U(md, {
        clearResults: md.ze,
        setPageCapacity: md.bp,
        getPageCapacity: md.Ve,
        gotoPage: md.Yl,
        searchNearby: md.Xo,
        searchInBounds: md.ym,
        search: md.search,
        enableFirstResultSelection: md.kC,
        disableFirstResultSelection: md.PB
    });
    function nd(a, b) {
        T.call(this, a, b)
    }
    w.ja(nd, T, "BaseRoute");
    w.extend(nd.prototype, {
        ze: s()
    });
    function od(a, b) {
        T.call(this, a, b);
        b = b || {};
        this.Vs(b.policy);
        this.bp(b.pageCapacity);
        this.cd = bd;
        this.Lt = gd;
        this.Mt = Xc;
        this.ka = [];
        this.La = -1;
        this.k.Sc = b.enableTraffic || q;
        this.Na = [];
        var c = this;
        I.load("route",
        function() {
            c.je()
        })
    }
    od.Qm = 100;
    od.GN = [0, 1, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 1, 1, 1];
    w.ja(od, nd, "TransitRoute");
    w.extend(od.prototype, {
        Vs: function(a) {
            this.k.Oc = 0 <= a && 4 >= a ? a: 0
        },
        Iz: function(a, b) {
            this.Na.push({
                method: "_internalSearch",
                arguments: [a, b]
            })
        },
        search: function(a, b) {
            this.Na.push({
                method: "search",
                arguments: [a, b]
            })
        },
        bp: function(a) {
            if ("string" == typeof a && (a = parseInt(a), isNaN(a))) {
                this.k.gk = od.Qm;
                return
            }
            this.k.gk = "number" != typeof a ? od.Qm: 1 <= a && a <= od.Qm ? Math.round(a) : od.Qm
        },
        toString: da("TransitRoute"),
        pS: function(a) {
            return a.replace(/\(.*\)/, "")
        }
    });
    var pd = od.prototype;
    U(pd, {
        _internalSearch: pd.Iz
    });
    function qd(a, b) {
        T.call(this, a, b);
        this.ka = [];
        this.La = -1;
        this.Na = [];
        var c = this,
        d = this.k.aa;
        1 != d.js && 2 != d.js && (d.js = 1);
        this.bz = this.k.aa.Rb ? o: q;
        I.load("route",
        function() {
            c.je()
        });
        this.lD && this.lD()
    }
    qd.TN = " \u73af\u5c9b \u65e0\u5c5e\u6027\u9053\u8def \u4e3b\u8def \u9ad8\u901f\u8fde\u63a5\u8def \u4ea4\u53c9\u70b9\u5185\u8def\u6bb5 \u8fde\u63a5\u9053\u8def \u505c\u8f66\u573a\u5185\u90e8\u9053\u8def \u670d\u52a1\u533a\u5185\u90e8\u9053\u8def \u6865 \u6b65\u884c\u8857 \u8f85\u8def \u531d\u9053 \u5168\u5c01\u95ed\u9053\u8def \u672a\u5b9a\u4e49\u4ea4\u901a\u533a\u57df POI\u8fde\u63a5\u8def \u96a7\u9053 \u6b65\u884c\u9053 \u516c\u4ea4\u4e13\u7528\u9053 \u63d0\u524d\u53f3\u8f6c\u9053".split(" ");
    w.ja(qd, nd, "DWRoute");
    w.extend(qd.prototype, {
        search: function(a, b, c) {
            this.Na.push({
                method: "search",
                arguments: [a, b, c]
            })
        }
    });
    function rd(a, b) {
        qd.call(this, a, b);
        b = b || {};
        this.k.Sc = b.enableTraffic || q;
        this.Vs(b.policy);
        this.cd = cd;
        this.Lt = jd;
        this.Mt = $c
    }
    w.ja(rd, qd, "DrivingRoute");
    rd.prototype.Vs = function(a) {
        this.k.Oc = 0 <= a && 2 >= a ? a: 0
    };
    function sd(a, b) {
        qd.call(this, a, b);
        this.cd = dd;
        this.Lt = kd;
        this.Mt = Zc;
        this.bz = q
    }
    w.ja(sd, qd, "WalkingRoute");
    function td(a, b) {
        w.lang.ra.call(this);
        this.Df = [];
        this.rm = [];
        this.k = b;
        this.Sb = a;
        this.map = this.k.aa.map || p;
        this.xx = this.k.xx;
        this.jb = p;
        this.Mi = 0;
        this.Lx = "";
        this.Jd = 1;
        this.kw = "";
        this.Ro = [0, 0, 0, 0, 0, 0, 0];
        this.BD = [];
        this.wr = [1, 1, 1, 1, 1, 1, 1];
        this.RM = [1, 1, 1, 1, 1, 1, 1];
        this.Ls = [0, 0, 0, 0, 0, 0, 0];
        this.So = [0, 0, 0, 0, 0, 0, 0];
        this.Ba = [{
            o: "",
            vf: 0,
            Jm: 0,
            x: 0,
            y: 0,
            nc: -1
        },
        {
            o: "",
            vf: 0,
            Jm: 0,
            x: 0,
            y: 0,
            nc: -1
        },
        {
            o: "",
            vf: 0,
            Jm: 0,
            x: 0,
            y: 0,
            nc: -1
        },
        {
            o: "",
            vf: 0,
            Jm: 0,
            x: 0,
            y: 0,
            nc: -1
        },
        {
            o: "",
            vf: 0,
            Jm: 0,
            x: 0,
            y: 0,
            nc: -1
        },
        {
            o: "",
            vf: 0,
            Jm: 0,
            x: 0,
            y: 0,
            nc: -1
        },
        {
            o: "",
            vf: 0,
            Jm: 0,
            x: 0,
            y: 0,
            nc: -1
        }];
        this.Mh = -1;
        this.mt = [];
        this.nt = [];
        I.load("route", s())
    }
    w.lang.ja(td, w.lang.ra, "RouteAddr");
    function ud(a) {
        this.k = {};
        w.extend(this.k, a);
        this.Na = [];
        var b = this;
        I.load("othersearch",
        function() {
            b.je()
        })
    }
    w.ja(ud, w.lang.ra, "Geocoder");
    w.extend(ud.prototype, {
        Tl: function(a, b, c) {
            this.Na.push({
                method: "getPoint",
                arguments: [a, b, c]
            })
        },
        Yr: function(a, b, c) {
            this.Na.push({
                method: "getLocation",
                arguments: [a, b, c]
            })
        },
        toString: da("Geocoder")
    });
    var vd = ud.prototype;
    U(vd, {
        getPoint: vd.Tl,
        getLocation: vd.Yr
    });
    function Geolocation(a) {
        a = a || {};
        this.D = {
            timeout: a.timeout || 1E4,
            maximumAge: a.maximumAge || 6E5
        };
        this.Xd = [];
        var b = this;
        I.load("othersearch",
        function() {
            for (var a = 0,
            d; d = b.Xd[a]; a++) b[d.method].apply(b, d.arguments)
        })
    }
    w.extend(Geolocation.prototype, {
        getCurrentPosition: function(a, b) {
            this.Xd.push({
                method: "getCurrentPosition",
                arguments: arguments
            })
        },
        getStatus: da(2)
    });
    function wd(a) {
        a = a || {};
        a.aa = a.renderOptions || {};
        this.k = {
            aa: {
                map: a.aa.map || p
            }
        };
        this.Na = [];
        var b = this;
        I.load("othersearch",
        function() {
            b.je()
        })
    }
    w.ja(wd, w.lang.ra, "LocalCity");
    w.extend(wd.prototype, {
        get: function(a) {
            this.Na.push({
                method: "get",
                arguments: [a]
            })
        },
        toString: da("LocalCity")
    });
    function xd() {
        this.Na = [];
        var a = this;
        I.load("othersearch",
        function() {
            a.je()
        })
    }
    w.ja(xd, w.lang.ra, "Boundary");
    w.extend(xd.prototype, {
        get: function(a, b) {
            this.Na.push({
                method: "get",
                arguments: [a, b]
            })
        },
        toString: da("Boundary")
    });
    function yd(a, b) {
        T.call(this, a, b);
        this.QN = ed;
        this.SN = hd;
        this.PN = fd;
        this.RN = id;
        this.Na = [];
        var c = this;
        I.load("buslinesearch",
        function() {
            c.je()
        })
    }
    yd.zu = E.ea + "iw_plus.gif";
    yd.HQ = E.ea + "iw_minus.gif";
    yd.zS = E.ea + "stop_icon.png";
    w.ja(yd, T);
    w.extend(yd.prototype, {
        getBusList: function(a) {
            this.Na.push({
                method: "getBusList",
                arguments: [a]
            })
        },
        getBusLine: function(a) {
            this.Na.push({
                method: "getBusLine",
                arguments: [a]
            })
        },
        setGetBusListCompleteCallback: function(a) {
            this.k.DL = a || s()
        },
        setGetBusLineCompleteCallback: function(a) {
            this.k.CL = a || s()
        },
        setBusListHtmlSetCallback: function(a) {
            this.k.AL = a || s()
        },
        setBusLineHtmlSetCallback: function(a) {
            this.k.zL = a || s()
        },
        setPolylinesSetCallback: function(a) {
            this.k.ND = a || s()
        }
    });
    function zd(a) {
        T.call(this, a);
        a = a || {};
        this.oc = {
            input: a.input || p,
            $A: a.baseDom || p,
            types: a.types || [],
            gx: a.onSearchComplete || s()
        };
        this.fd.src = a.location || "\u5168\u56fd";
        this.Ii = "";
        this.Xf = p;
        this.MG = "";
        this.wi();
        Pa(Ia);
        var b = this;
        I.load("autocomplete",
        function() {
            b.je()
        })
    }
    w.ja(zd, T, "Autocomplete");
    w.extend(zd.prototype, {
        wi: s(),
        show: s(),
        J: s(),
        uE: function(a) {
            this.oc.types = a
        },
        Bm: function(a) {
            this.fd.src = a
        },
        search: ba("Ii"),
        Ax: ba("MG")
    });
    var Sa;
    function Na(a, b) {
        this.A = "string" == typeof a ? w.N(a) : a;
        this.k = {
            enableScrollWheelZoom: o,
            panoramaRenderer: "flash",
            swfSrc: z.dg("main_domain_nocdn", "res/swf/") + "APILoader.swf",
            visible: o,
            linksControl: o,
            navigationControl: o,
            closeControl: o,
            indoorSceneSwitchControl: o,
            albumsControl: q,
            albumsControlOptions: {},
            copyrightControlOptions: {}
        };
        var b = b || {},
        c;
        for (c in b) this.k[c] = b[c];
        this.ya = {
            heading: 0,
            pitch: 0
        };
        this.nn = [];
        this.xb = this.Oa = p;
        this.Rq = this.xj();
        this.ka = [];
        this.Ac = 1;
        this.nf = this.dR = this.Ck = "";
        this.se = {};
        this.sf = p;
        this.zg = [];
        this.Hq = [];
        this.Lq = q;
        var d = this;
        "flashRender" === this.xj() ? I.load("panoramaflash",
        function() {
            d.wi()
        },
        o) : I.load("panorama",
        function() {
            d.qb()
        },
        o);
        this.IR(this.A);
        "api" == b.yf ? Pa(Ea) : Pa(Fa);
        this.addEventListener("id_changed",
        function() {
            Pa(Da, {
                from: b.yf
            })
        })
    }
    var Ad = 4,
    Bd = 1;
    w.lang.ja(Na, w.lang.ra, "Panorama");
    w.extend(Na.prototype, {
        IR: function(a) {
            var b, c;
            b = a.style;
            c = Ua(a).position;
            "absolute" != c && "relative" != c && (b.position = "relative", b.zIndex = 0);
            if ("absolute" === c || "relative" === c) if (a = Ua(a).zIndex, !a || "auto" === a) b.zIndex = 0
        },
        dV: u("nn"),
        Gb: u("Oa"),
        FV: u("iv"),
        uM: u("iv"),
        V: u("xb"),
        sa: u("ya"),
        U: u("Ac"),
        Ng: u("Ck"),
        j0: function() {
            return this.QZ || []
        },
        f0: u("dR"),
        ds: u("nf"),
        Cx: function(a) {
            a !== this.nf && (this.nf = a, this.dispatchEvent(new L("onscene_type_changed")))
        },
        pc: function(a, b, c) {
            "object" === typeof b && (c = b, b = j);
            a != this.Oa && (this.Nk = this.Oa, this.Ok = this.xb, this.Oa = a, this.nf = b || "street", this.xb = p, c && c.pov && this.qd(c.pov))
        },
        ha: function(a) {
            a.Za(this.xb) || (this.Nk = this.Oa, this.Ok = this.xb, this.xb = a, this.Oa = p)
        },
        qd: function(a) {
            a && (this.ya = a, a = this.ya.pitch, "cvsRender" == this.xj() || Cd() ? (90 < a && (a = 90), -90 > a && (a = -90)) : "cssRender" == this.xj() && (45 < a && (a = 45), -45 > a && (a = -45)), this.Lq = o, this.ya.pitch = a)
        },
        Bc: function(a) {
            a != this.Ac && (a > Ad && (a = Ad), a < Bd && (a = Bd), a != this.Ac && (this.Ac = a))
        },
        zA: function() {
            if (this.C) for (var a = this.C.TC(), b = 0; b < a.length; b++)(a[b] instanceof R || a[b] instanceof pc) && a[b].point && this.ka.push(a[b])
        },
        qE: ba("C"),
        Us: function(a) {
            this.sf = a || "none"
        },
        ap: function(a) {
            for (var b in a) {
                if ("object" == typeof a[b]) for (var c in a[b]) this.k[b][c] = a[b][c];
                else this.k[b] = a[b];
                switch (b) {
                case "linksControl":
                    this.dispatchEvent(new L("onlinks_visible_changed"));
                    break;
                case "navigationControl":
                    this.dispatchEvent(new L("onnavigation_visible_changed"));
                    break;
                case "indoorSceneSwitchControl":
                    this.dispatchEvent(new L("onindoor_default_switch_mode_changed"));
                    break;
                case "albumsControl":
                    this.dispatchEvent(new L("onalbums_visible_changed"));
                    break;
                case "albumsControlOptions":
                    this.dispatchEvent(new L("onalbums_options_changed"));
                    break;
                case "copyrightControlOptions":
                    this.dispatchEvent(new L("oncopyright_options_changed"))
                }
            }
        },
        $j: function() {
            this.Wk.style.visibility = "hidden"
        },
        Gx: function() {
            this.Wk.style.visibility = "visible"
        },
        vU: function() {
            this.k.enableScrollWheelZoom = o
        },
        gU: function() {
            this.k.enableScrollWheelZoom = q
        },
        show: function() {
            this.k.visible = o
        },
        J: function() {
            this.k.visible = q
        },
        xj: function() {
            return Ta() && !G() && "javascript" != this.k.panoramaRenderer ? "flashRender": !G() && Mb() ? "cvsRender": "cssRender"
        },
        xa: function(a) {
            this.se[a.Uc] = a
        },
        Hb: function(a) {
            delete this.se[a]
        },
        lK: function() {
            return this.k.visible
        },
        Ph: function() {
            return new K(this.A.clientWidth, this.A.clientHeight)
        },
        Ea: u("A"),
        OJ: function() {
            var a = z.dg("baidumap", "?"),
            b = this.Gb();
            if (b) {
                var b = {
                    panotype: this.ds(),
                    heading: this.sa().heading,
                    pitch: this.sa().pitch,
                    pid: b,
                    panoid: b,
                    from: "api"
                },
                c;
                for (c in b) a += c + "=" + b[c] + "&"
            }
            return a.slice(0, -1)
        },
        Hw: function() {
            this.ap({
                copyrightControlOptions: {
                    logoVisible: q
                }
            })
        },
        xE: function() {
            this.ap({
                copyrightControlOptions: {
                    logoVisible: o
                }
            })
        },
        UA: function(a) {
            function b(a, b) {
                return function() {
                    a.Hq.push({
                        mL: b,
                        lL: arguments
                    })
                }
            }
            for (var c = a.getPanoMethodList(), d = "", e = 0, f = c.length; e < f; e++) d = c[e],
            this[d] = b(this, d);
            this.zg.push(a)
        },
        cE: function(a) {
            for (var b = this.zg.length; b--;) this.zg[b] === a && this.zg.splice(b, 1)
        }
    });
    var Dd = Na.prototype;
    U(Dd, {
        setId: Dd.pc,
        setPosition: Dd.ha,
        setPov: Dd.qd,
        setZoom: Dd.Bc,
        setOptions: Dd.ap,
        getId: Dd.Gb,
        getPosition: Dd.V,
        getPov: Dd.sa,
        getZoom: Dd.U,
        getLinks: Dd.dV,
        getBaiduMapUrl: Dd.OJ,
        hideMapLogo: Dd.Hw,
        showMapLogo: Dd.xE,
        enableDoubleClickZoom: Dd.J_,
        disableDoubleClickZoom: Dd.y_,
        enableScrollWheelZoom: Dd.vU,
        disableScrollWheelZoom: Dd.gU,
        show: Dd.show,
        hide: Dd.J,
        addPlugin: Dd.UA,
        removePlugin: Dd.cE,
        getVisible: Dd.lK,
        addOverlay: Dd.xa,
        removeOverlay: Dd.Hb,
        getSceneType: Dd.ds,
        setPanoramaPOIType: Dd.Us
    });
    U(window, {
        BMAP_PANORAMA_POI_HOTEL: "hotel",
        BMAP_PANORAMA_POI_CATERING: "catering",
        BMAP_PANORAMA_POI_MOVIE: "movie",
        BMAP_PANORAMA_POI_TRANSIT: "transit",
        BMAP_PANORAMA_POI_INDOOR_SCENE: "indoor_scene",
        BMAP_PANORAMA_POI_NONE: "none",
        BMAP_PANORAMA_INDOOR_SCENE: "inter",
        BMAP_PANORAMA_STREET_SCENE: "street"
    });
    function Ed() {
        w.lang.ra.call(this);
        this.Uc = "PanoramaOverlay_" + this.Q;
        this.G = p;
        this.Da = o
    }
    w.lang.ja(Ed, w.lang.ra, "PanoramaOverlayBase");
    w.extend(Ed.prototype, {
        g0: u("Uc"),
        fa: function() {
            aa("initialize\u65b9\u6cd5\u672a\u5b9e\u73b0")
        },
        remove: function() {
            aa("remove\u65b9\u6cd5\u672a\u5b9e\u73b0")
        },
        rf: function() {
            aa("_setOverlayProperty\u65b9\u6cd5\u672a\u5b9e\u73b0")
        }
    });
    function Fd(a, b) {
        Ed.call(this);
        var c = {
            position: p,
            altitude: 2,
            displayDistance: o
        },
        b = b || {},
        d;
        for (d in b) c[d] = b[d];
        this.xb = c.position;
        this.rj = a;
        this.Hp = c.altitude;
        this.qP = c.displayDistance
    }
    w.lang.ja(Fd, Ed, "PanoramaLabel");
    w.extend(Fd.prototype, {
        ha: function(a) {
            this.xb = a;
            this.rf("position", a)
        },
        V: u("xb"),
        Pc: function(a) {
            this.rj = a;
            this.rf("content", a)
        },
        Uj: u("rj"),
        mE: function(a) {
            this.Hp = a;
            this.rf("altitude", a)
        },
        io: u("Hp"),
        sa: function() {
            var a = this.V(),
            b = p,
            c = p;
            this.G && (c = this.G.V());
            if (a && c) if (a.Za(c)) b = this.G.sa();
            else {
                b = {};
                b.heading = Gd(a.lng - c.lng, a.lat - c.lat) || 0;
                var a = b,
                c = this.io(),
                d = this.hn();
                a.pitch = Math.round(180 * (Math.atan(c / d) / Math.PI)) || 0
            }
            return b
        },
        hn: function() {
            var a = 0,
            b, c;
            this.G && (b = this.G.V(), (c = this.V()) && !c.Za(b) && (a = Q.lo(b, c)));
            return a
        },
        J: function() {
            aa("hide\u65b9\u6cd5\u672a\u5b9e\u73b0")
        },
        show: function() {
            aa("show\u65b9\u6cd5\u672a\u5b9e\u73b0")
        },
        rf: s()
    });
    var Hd = Fd.prototype;
    U(Hd, {
        setPosition: Hd.ha,
        getPosition: Hd.V,
        setContent: Hd.Pc,
        getContent: Hd.Uj,
        setAltitude: Hd.mE,
        getAltitude: Hd.io,
        getPov: Hd.sa,
        show: Hd.show,
        hide: Hd.J
    });
    function Id(a, b) {
        Ed.call(this);
        var c = {
            icon: "",
            title: "",
            panoInfo: p,
            altitude: 2
        },
        b = b || {},
        d;
        for (d in b) c[d] = b[d];
        this.xb = a;
        this.HG = c.icon;
        this.ZH = c.title;
        this.Hp = c.altitude;
        this.uR = c.panoInfo;
        this.ya = {
            heading: 0,
            pitch: 0
        }
    }
    w.lang.ja(Id, Ed, "PanoramaMarker");
    w.extend(Id.prototype, {
        ha: function(a) {
            this.xb = a;
            this.rf("position", a)
        },
        V: u("xb"),
        qc: function(a) {
            this.ZH = a;
            this.rf("title", a)
        },
        uo: u("ZH"),
        Ob: function(a) {
            this.HG = icon;
            this.rf("icon", a)
        },
        mo: u("HG"),
        mE: function(a) {
            this.Hp = a;
            this.rf("altitude", a)
        },
        io: u("Hp"),
        UC: u("uR"),
        sa: function() {
            var a = p;
            if (this.G) {
                var a = this.G.V(),
                b = this.V(),
                a = Gd(b.lng - a.lng, b.lat - a.lat);
                isNaN(a) && (a = 0);
                a = {
                    heading: a,
                    pitch: 0
                }
            } else a = this.ya;
            return a
        },
        rf: s()
    });
    var Jd = Id.prototype;
    U(Jd, {
        setPosition: Jd.ha,
        getPosition: Jd.V,
        setTitle: Jd.qc,
        getTitle: Jd.uo,
        setAltitude: Jd.mE,
        getAltitude: Jd.io,
        getPanoInfo: Jd.UC,
        getIcon: Jd.mo,
        setIcon: Jd.Ob,
        getPov: Jd.sa
    });
    function Gd(a, b) {
        var c = 0;
        if (0 !== a && 0 !== b) {
            var c = 180 * (Math.atan(a / b) / Math.PI),
            d = 0;
            0 < a && 0 > b && (d = 90);
            0 > a && 0 > b && (d = 180);
            0 > a && 0 < b && (d = 270);
            c = (c + 90) % 90 + d
        } else 0 === a ? c = 0 > b ? 180 : 0 : 0 === b && (c = 0 < a ? 90 : 270);
        return Math.round(c)
    }
    function Cd() {
        if ("boolean" === typeof Kd) return Kd;
        if (!window.WebGLRenderingContext || w.platform.ck && -1 == navigator.userAgent.indexOf("Android 5")) return Kd = q;
        var a = document.createElement("canvas"),
        b = p;
        try {
            b = a.getContext("webgl")
        } catch(c) {
            Kd = q
        }
        return Kd = b === p ? q: o
    }
    var Kd;
    function ac(a, b) {
        this.G = a || p;
        var c = this;
        c.G && c.P();
        I.load("pservice",
        function() {
            c.JO()
        });
        "api" == (b || {}).yf ? Pa(Ga) : Pa(Ha);
        this.dd = {
            getPanoramaById: [],
            getPanoramaByLocation: [],
            getVisiblePOIs: [],
            getRecommendPanosById: [],
            getPanoramaVersions: [],
            checkPanoSupportByCityCode: [],
            getPanoramaByPOIId: [],
            getCopyrightProviders: []
        }
    }
    z.qm(function(a) {
        "flashRender" !== a.xj() && new ac(a, {
            yf: "api"
        })
    });
    w.extend(ac.prototype, {
        P: function() {
            function a(a) {
                if (a) {
                    if (a.id != b.iv) {
                        b.uM(a.id);
                        b.R = a;
                        b.Oa != p && (b.Ok = b._position);
                        for (var c in a) if (a.hasOwnProperty(c)) switch (b["_" + c] = a[c], c) {
                        case "position":
                            b.xb = a[c];
                            break;
                        case "id":
                            b.Oa = a[c];
                            break;
                        case "links":
                            b.nn = a[c];
                            break;
                        case "zoom":
                            b.Ac = a[c]
                        }
                        if (b.Ok) {
                            var f = b.Ok,
                            g = b._position;
                            c = f.lat;
                            var i = g.lat,
                            k = Nb(i - c),
                            f = Nb(g.lng - f.lng);
                            c = Math.sin(k / 2) * Math.sin(k / 2) + Math.cos(Nb(c)) * Math.cos(Nb(i)) * Math.sin(f / 2) * Math.sin(f / 2);
                            b.ZF = 6371E3 * 2 * Math.atan2(Math.sqrt(c), Math.sqrt(1 - c))
                        }
                        c = new L("ondataload");
                        c.data = a;
                        b.dispatchEvent(c);
                        b.dispatchEvent(new L("onposition_changed"));
                        b.dispatchEvent(new L("onlinks_changed"));
                        b.dispatchEvent(new L("oncopyright_changed"), {
                            copyright: a.copyright
                        });
                        a.zl && b.k.closeControl ? w.B.show(b.ku) : w.B.J(b.ku)
                    }
                } else b.Oa = b.Nk,
                b.xb = b.Ok,
                b.dispatchEvent(new L("onnoresult"))
            }
            var b = this.G,
            c = this;
            b.addEventListener("id_changed",
            function() {
                c.qo(b.Gb(), a)
            });
            b.addEventListener("iid_changed",
            function() {
                c.Ch(ac.Rm + "qt=idata&iid=" + b.yz + "&fn=",
                function(b) {
                    if (b && b.result && 0 == b.result.error) {
                        var b = b.content[0].interinfo,
                        e = {};
                        e.zl = b.BreakID;
                        for (var f = b.Defaultfloor,
                        g = p,
                        i = 0; i < b.Floors.length; i++) if (b.Floors[i].Floor == f) {
                            g = b.Floors[i];
                            break
                        }
                        e.id = g.StartID || g.Points[0].PID;
                        c.qo(e.id, a, e)
                    }
                })
            });
            b.addEventListener("position_changed_inner",
            function() {
                c.Wi(b.V(), a)
            })
        },
        qo: function(a, b) {
            this.dd.getPanoramaById.push(arguments)
        },
        Wi: function(a, b, c) {
            this.dd.getPanoramaByLocation.push(arguments)
        },
        bD: function(a, b, c, d) {
            this.dd.getVisiblePOIs.push(arguments)
        },
        Cw: function(a, b) {
            this.dd.getRecommendPanosById.push(arguments)
        },
        Bw: function(a) {
            this.dd.getPanoramaVersions.push(arguments)
        },
        iB: function(a, b) {
            this.dd.checkPanoSupportByCityCode.push(arguments)
        },
        Aw: function(a, b) {
            this.dd.getPanoramaByPOIId.push(arguments)
        },
        SJ: function(a) {
            this.dd.getCopyrightProviders.push(arguments)
        }
    });
    var Ld = ac.prototype;
    U(Ld, {
        getPanoramaById: Ld.qo,
        getPanoramaByLocation: Ld.Wi,
        getPanoramaByPOIId: Ld.Aw
    });
    function $b(a) {
        Cc.call(this);
        "api" == (a || {}).yf ? Pa(Ba) : Pa(Ca)
    }
    $b.tF = z.dg("pano", "tile/");
    $b.prototype = new Cc;
    $b.prototype.getTilesUrl = function(a, b) {
        var c = $b.tF[(a.x + a.y) % $b.tF.length] + "?udt=20150114&qt=tile&styles=pl&x=" + a.x + "&y=" + a.y + "&z=" + b;
        w.S.ba && 6 >= w.S.ba && (c += "&color_dep=32");
        return c
    };
    $b.prototype.vs = da(o);
    Md.Cd = new Q;
    function Md() {}
    w.extend(Md, {
        hU: function(a, b, c) {
            c = w.lang.Ld(c);
            b = {
                data: b
            };
            "position_changed" == a && (b.data = Md.Cd.bi(new P(b.data.mercatorX, b.data.mercatorY)));
            c.dispatchEvent(new L("on" + a), b)
        }
    });
    var Nd = Md;
    U(Nd, {
        dispatchFlashEvent: Nd.hU
    });
    var Od = {
        IN: 50
    };
    Od.Nt = z.dg("pano")[0];
    Od.Jt = {
        width: 220,
        height: 60
    };
    w.extend(Od, {
        Bo: function(a, b, c, d) {
            if (!b || !c || !c.lngLat || !c.panoInstance) d();
            else {
                this.xn === j && (this.xn = new ac(p, {
                    yf: "api"
                }));
                var e = this;
                this.xn.iB(b,
                function(b) {
                    b ? e.xn.Wi(c.lngLat, Od.IN,
                    function(b) {
                        if (b && b.id) {
                            var f = b.id,
                            k = b.jg,
                            b = b.kg,
                            l = ac.Cd.Vg(c.lngLat),
                            m = e.lQ(l, {
                                x: k,
                                y: b
                            }),
                            k = e.aK(f, m, 0, Od.Jt.width, Od.Jt.height);
                            a.content = e.mQ(a.content, k, c.titleTip, c.beforeDomId);
                            a.addEventListener("open",
                            function() {
                                ja.F(w.tc("infoWndPano"), "click",
                                function() {
                                    c.panoInstance.pc(f);
                                    c.panoInstance.show();
                                    c.panoInstance.qd({
                                        heading: m,
                                        pitch: 0
                                    })
                                })
                            })
                        }
                        d()
                    }) : d()
                })
            }
        },
        mQ: function(a, b, c, d) {
            var c = c || "",
            e; ! d || !a.split(d)[0] ? (d = a, a = "") : (d = a.split(d)[0], e = d.lastIndexOf("<"), d = a.substring(0, e), a = a.substring(e));
            e = [];
            var f = Od.Jt.width,
            g = Od.Jt.height;
            e.push(d);
            e.push("<div id='infoWndPano' class='panoInfoBox' style='height:" + g + "px;width:" + f + "px; margin-top: -19px;'>");
            e.push("<img class='pano_thumnail_img' width='" + f + "' height='" + g + "' border='0' alt='" + c + "\u5916\u666f' title='" + c + "\u5916\u666f' src='" + b + "' onerror='Pano.PanoEntranceUtil.thumbnailNotFound(this, " + f + ", " + g + ");' />");
            e.push("<div class='panoInfoBoxTitleBg' style='width:" + f + "px;'></div><a href='javascript:void(0)' class='panoInfoBoxTitleContent' >\u8fdb\u5165\u5168\u666f&gt;&gt;</a>");
            e.push("</div>");
            e.push(a);
            return e.join("")
        },
        lQ: function(a, b) {
            var c = 90 - 180 * Math.atan2(a.y - b.y, a.x - b.x) / Math.PI;
            0 > c && (c += 360);
            return c
        },
        aK: function(a, b, c, d, e) {
            var f = {
                panoId: a,
                panoHeading: b || 0,
                panoPitch: c || 0,
                width: d,
                height: e
            };
            return (Od.Nt + "?qt=pr3d&fovy=75&quality=80&panoid={panoId}&heading={panoHeading}&pitch={panoPitch}&width={width}&height={height}").replace(/\{(.*?)\}/g,
            function(a, b) {
                return f[b]
            })
        }
    });
    var Pd = document,
    Qd = Math,
    Rd = Pd.createElement("div").style,
    Sd;
    a: {
        for (var Td = ["t", "webkitT", "MozT", "msT", "OT"], Ud, Vd = 0, Xd = Td.length; Vd < Xd; Vd++) if (Ud = Td[Vd] + "ransform", Ud in Rd) {
            Sd = Td[Vd].substr(0, Td[Vd].length - 1);
            break a
        }
        Sd = q
    }
    var Yd = Sd ? "-" + Sd.toLowerCase() + "-": "",
    $d = Zd("transform"),
    ae = Zd("transitionProperty"),
    be = Zd("transitionDuration"),
    ce = Zd("transformOrigin"),
    de = Zd("transitionTimingFunction"),
    ee = Zd("transitionDelay"),
    fe = /android/gi.test(navigator.appVersion),
    ge = /iphone|ipad/gi.test(navigator.appVersion),
    he = /hp-tablet/gi.test(navigator.appVersion),
    ie = Zd("perspective") in Rd,
    je = "ontouchstart" in window && !he,
    ke = Sd !== q,
    le = Zd("transition") in Rd,
    ne = "onorientationchange" in window ? "orientationchange": "resize",
    oe = je ? "touchstart": "mousedown",
    pe = je ? "touchmove": "mousemove",
    qe = je ? "touchend": "mouseup",
    re = je ? "touchcancel": "mouseup",
    se = Sd === q ? q: {
        "": "transitionend",
        webkit: "webkitTransitionEnd",
        Moz: "transitionend",
        O: "otransitionend",
        ms: "MSTransitionEnd"
    } [Sd],
    te = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame ||
    function(a) {
        return setTimeout(a, 1)
    },
    ue = window.cancelRequestAnimationFrame || window.X1 || window.webkitCancelRequestAnimationFrame || window.mozCancelRequestAnimationFrame || window.oCancelRequestAnimationFrame || window.msCancelRequestAnimationFrame || clearTimeout,
    ve = ie ? " translateZ(0)": "";
    function we(a, b) {
        var c = this,
        d;
        c.Lm = "object" == typeof a ? a: Pd.getElementById(a);
        c.Lm.style.overflow = "hidden";
        c.Bb = c.Lm.children[0];
        c.options = {
            yo: o,
            lp: o,
            x: 0,
            y: 0,
            pr: o,
            oT: q,
            KD: o,
            dL: o,
            tk: o,
            gi: q,
            BY: 0,
            hB: q,
            eD: o,
            $i: o,
            ij: o,
            uC: fe,
            Iw: ge,
            AU: ge && ie,
            jE: "",
            zoom: q,
            uk: 1,
            op: 4,
            jU: 2,
            nN: "scroll",
            ct: q,
            Jx: 1,
            GL: p,
            yL: function(a) {
                a.preventDefault()
            },
            JL: p,
            xL: p,
            IL: p,
            wL: p,
            fx: p,
            KL: p,
            BL: p,
            Ko: p,
            LL: p,
            Jo: p
        };
        for (d in b) c.options[d] = b[d];
        c.x = c.options.x;
        c.y = c.options.y;
        c.options.tk = ke && c.options.tk;
        c.options.$i = c.options.yo && c.options.$i;
        c.options.ij = c.options.lp && c.options.ij;
        c.options.zoom = c.options.tk && c.options.zoom;
        c.options.gi = le && c.options.gi;
        c.options.zoom && fe && (ve = "");
        c.Bb.style[ae] = c.options.tk ? Yd + "transform": "top left";
        c.Bb.style[be] = "0";
        c.Bb.style[ce] = "0 0";
        c.options.gi && (c.Bb.style[de] = "cubic-bezier(0.33,0.66,0.66,1)");
        c.options.tk ? c.Bb.style[$d] = "translate(" + c.x + "px," + c.y + "px)" + ve: c.Bb.style.cssText += ";position:absolute;top:" + c.y + "px;left:" + c.x + "px";
        c.options.gi && (c.options.uC = o);
        c.refresh();
        c.P(ne, window);
        c.P(oe); ! je && "none" != c.options.nN && (c.P("DOMMouseScroll"), c.P("mousewheel"));
        c.options.hB && (c.wT = setInterval(function() {
            c.HO()
        },
        500));
        this.options.eD && (Event.prototype.stopImmediatePropagation || (document.body.removeEventListener = function(a, b, c) {
            var d = Node.prototype.removeEventListener;
            a === "click" ? d.call(document.body, a, b.rK || b, c) : d.call(document.body, a, b, c)
        },
        document.body.addEventListener = function(a, b, c) {
            var d = Node.prototype.addEventListener;
            a === "click" ? d.call(document.body, a, b.rK || (b.rK = function(a) {
                a.hX || b(a)
            }), c) : d.call(document.body, a, b, c)
        }), c.P("click", document.body, o))
    }
    we.prototype = {
        enabled: o,
        x: 0,
        y: 0,
        hj: [],
        scale: 1,
        DB: 0,
        EB: 0,
        De: [],
        $e: [],
        ZA: p,
        Ux: 0,
        handleEvent: function(a) {
            switch (a.type) {
            case oe:
                if (!je && 0 !== a.button) break;
                this.bv(a);
                break;
            case pe:
                this.fR(a);
                break;
            case qe:
            case re:
                this.ju(a);
                break;
            case ne:
                this.sA();
                break;
            case "DOMMouseScroll":
            case "mousewheel":
                this.KS(a);
                break;
            case se:
                this.GS(a);
                break;
            case "click":
                this.RO(a)
            }
        },
        HO: function() { ! this.Zg && (!this.vk && !(this.ul || this.zx == this.Bb.offsetWidth * this.scale && this.Wo == this.Bb.offsetHeight * this.scale)) && this.refresh()
        },
        Su: function(a) {
            var b;
            this[a + "Scrollbar"] ? (this[a + "ScrollbarWrapper"] || (b = Pd.createElement("div"), this.options.jE ? b.className = this.options.jE + a.toUpperCase() : b.style.cssText = "position:absolute;z-index:100;" + ("h" == a ? "height:7px;bottom:1px;left:2px;right:" + (this.ij ? "7": "2") + "px": "width:7px;bottom:" + (this.$i ? "7": "2") + "px;top:2px;right:1px"), b.style.cssText += ";pointer-events:none;" + Yd + "transition-property:opacity;" + Yd + "transition-duration:" + (this.options.AU ? "350ms": "0") + ";overflow:hidden;opacity:" + (this.options.Iw ? "0": "1"), this.Lm.appendChild(b), this[a + "ScrollbarWrapper"] = b, b = Pd.createElement("div"), this.options.jE || (b.style.cssText = "position:absolute;z-index:100;background:rgba(0,0,0,0.5);border:1px solid rgba(255,255,255,0.9);" + Yd + "background-clip:padding-box;" + Yd + "box-sizing:border-box;" + ("h" == a ? "height:100%": "width:100%") + ";" + Yd + "border-radius:3px;border-radius:3px"), b.style.cssText += ";pointer-events:none;" + Yd + "transition-property:" + Yd + "transform;" + Yd + "transition-timing-function:cubic-bezier(0.33,0.66,0.66,1);" + Yd + "transition-duration:0;" + Yd + "transform: translate(0,0)" + ve, this.options.gi && (b.style.cssText += ";" + Yd + "transition-timing-function:cubic-bezier(0.33,0.66,0.66,1)"), this[a + "ScrollbarWrapper"].appendChild(b), this[a + "ScrollbarIndicator"] = b), "h" == a ? (this.nK = this.oK.clientWidth, this.NV = Qd.max(Qd.round(this.nK * this.nK / this.zx), 8), this.MV.style.width = this.NV + "px") : (this.fN = this.gN.clientHeight, this.XY = Qd.max(Qd.round(this.fN * this.fN / this.Wo), 8), this.WY.style.height = this.XY + "px"), this.tA(a, o)) : this[a + "ScrollbarWrapper"] && (ke && (this[a + "ScrollbarIndicator"].style[$d] = ""), this[a + "ScrollbarWrapper"].parentNode.removeChild(this[a + "ScrollbarWrapper"]), this[a + "ScrollbarWrapper"] = p, this[a + "ScrollbarIndicator"] = p)
        },
        sA: function() {
            var a = this;
            setTimeout(function() {
                a.refresh()
            },
            fe ? 200 : 0)
        },
        Kq: function(a, b) {
            this.vk || (a = this.yo ? a: 0, b = this.lp ? b: 0, this.options.tk ? this.Bb.style[$d] = "translate(" + a + "px," + b + "px) scale(" + this.scale + ")" + ve: (a = Qd.round(a), b = Qd.round(b), this.Bb.style.left = a + "px", this.Bb.style.top = b + "px"), this.x = a, this.y = b, this.tA("h"), this.tA("v"))
        },
        tA: function(a, b) {
            var c = "h" == a ? this.x: this.y;
            this[a + "Scrollbar"] && (c *= this[a + "ScrollbarProp"], 0 > c ? (this.options.uC || (c = this[a + "ScrollbarIndicatorSize"] + Qd.round(3 * c), 8 > c && (c = 8), this[a + "ScrollbarIndicator"].style["h" == a ? "width": "height"] = c + "px"), c = 0) : c > this[a + "ScrollbarMaxScroll"] && (this.options.uC ? c = this[a + "ScrollbarMaxScroll"] : (c = this[a + "ScrollbarIndicatorSize"] - Qd.round(3 * (c - this[a + "ScrollbarMaxScroll"])), 8 > c && (c = 8), this[a + "ScrollbarIndicator"].style["h" == a ? "width": "height"] = c + "px", c = this[a + "ScrollbarMaxScroll"] + (this[a + "ScrollbarIndicatorSize"] - c))), this[a + "ScrollbarWrapper"].style[ee] = "0", this[a + "ScrollbarWrapper"].style.opacity = b && this.options.Iw ? "0": "1", this[a + "ScrollbarIndicator"].style[$d] = "translate(" + ("h" == a ? c + "px,0)": "0," + c + "px)") + ve)
        },
        RO: function(a) {
            if (a.KP === o) return this.RA = a.target,
            this.lw = Date.now(),
            o;
            if (this.RA && this.lw) {
                if (600 < Date.now() - this.lw) return this.lw = this.RA = p,
                o
            } else {
                for (var b = a.target; b != this.Bb && b != document.body;) b = b.parentNode;
                if (b == document.body) return o
            }
            for (b = a.target; 1 != b.nodeType;) b = b.parentNode;
            b = b.tagName.toLowerCase();
            if ("select" != b && "input" != b && "textarea" != b) return a.stopImmediatePropagation ? a.stopImmediatePropagation() : a.hX = o,
            a.stopPropagation(),
            a.preventDefault(),
            this.lw = this.RA = p,
            q
        },
        bv: function(a) {
            var b = je ? a.touches[0] : a,
            c,
            d;
            if (this.enabled) {
                this.options.yL && this.options.yL.call(this, a); (this.options.gi || this.options.zoom) && this.$H(0);
                this.vk = this.ul = this.Zg = q;
                this.NB = this.MB = this.sv = this.rv = this.RB = this.QB = 0;
                this.options.zoom && (je && 1 < a.touches.length) && (d = Qd.abs(a.touches[0].pageX - a.touches[1].pageX), c = Qd.abs(a.touches[0].pageY - a.touches[1].pageY), this.DY = Qd.sqrt(d * d + c * c), this.hx = Qd.abs(a.touches[0].pageX + a.touches[1].pageX - 2 * this.OE) / 2 - this.x, this.ix = Qd.abs(a.touches[0].pageY + a.touches[1].pageY - 2 * this.PE) / 2 - this.y, this.options.Ko && this.options.Ko.call(this, a));
                if (this.options.KD && (this.options.tk ? (c = getComputedStyle(this.Bb, p)[$d].replace(/[^0-9\-.,]/g, "").split(","), d = +(c[12] || c[4]), c = +(c[13] || c[5])) : (d = +getComputedStyle(this.Bb, p).left.replace(/[^0-9-]/g, ""), c = +getComputedStyle(this.Bb, p).top.replace(/[^0-9-]/g, "")), d != this.x || c != this.y)) this.options.gi ? this.Ed(se) : ue(this.ZA),
                this.hj = [],
                this.Kq(d, c),
                this.options.fx && this.options.fx.call(this);
                this.tv = this.x;
                this.uv = this.y;
                this.gt = this.x;
                this.ht = this.y;
                this.jg = b.pageX;
                this.kg = b.pageY;
                this.startTime = a.timeStamp || Date.now();
                this.options.JL && this.options.JL.call(this, a);
                this.P(pe, window);
                this.P(qe, window);
                this.P(re, window)
            }
        },
        fR: function(a) {
            var b = je ? a.touches[0] : a,
            c = b.pageX - this.jg,
            d = b.pageY - this.kg,
            e = this.x + c,
            f = this.y + d,
            g = a.timeStamp || Date.now();
            this.options.xL && this.options.xL.call(this, a);
            if (this.options.zoom && je && 1 < a.touches.length) e = Qd.abs(a.touches[0].pageX - a.touches[1].pageX),
            f = Qd.abs(a.touches[0].pageY - a.touches[1].pageY),
            this.CY = Qd.sqrt(e * e + f * f),
            this.vk = o,
            b = 1 / this.DY * this.CY * this.scale,
            b < this.options.uk ? b = 0.5 * this.options.uk * Math.pow(2, b / this.options.uk) : b > this.options.op && (b = 2 * this.options.op * Math.pow(0.5, this.options.op / b)),
            this.Eo = b / this.scale,
            e = this.hx - this.hx * this.Eo + this.x,
            f = this.ix - this.ix * this.Eo + this.y,
            this.Bb.style[$d] = "translate(" + e + "px," + f + "px) scale(" + b + ")" + ve,
            this.options.LL && this.options.LL.call(this, a);
            else {
                this.jg = b.pageX;
                this.kg = b.pageY;
                if (0 < e || e < this.Qd) e = this.options.pr ? this.x + c / 2 : 0 <= e || 0 <= this.Qd ? 0 : this.Qd;
                if (f > this.Ye || f < this.Yc) f = this.options.pr ? this.y + d / 2 : f >= this.Ye || 0 <= this.Yc ? this.Ye: this.Yc;
                this.QB += c;
                this.RB += d;
                this.rv = Qd.abs(this.QB);
                this.sv = Qd.abs(this.RB);
                6 > this.rv && 6 > this.sv || (this.options.dL && (this.rv > this.sv + 5 ? (f = this.y, d = 0) : this.sv > this.rv + 5 && (e = this.x, c = 0)), this.Zg = o, this.Kq(e, f), this.MB = 0 < c ? -1 : 0 > c ? 1 : 0, this.NB = 0 < d ? -1 : 0 > d ? 1 : 0, 300 < g - this.startTime && (this.startTime = g, this.gt = this.x, this.ht = this.y), this.options.IL && this.options.IL.call(this, a))
            }
        },
        ju: function(a) {
            if (! (je && 0 !== a.touches.length)) {
                var b = this,
                c = je ? a.changedTouches[0] : a,
                d,
                e,
                f = {
                    pa: 0,
                    time: 0
                },
                g = {
                    pa: 0,
                    time: 0
                },
                i = (a.timeStamp || Date.now()) - b.startTime;
                d = b.x;
                e = b.y;
                b.Ed(pe, window);
                b.Ed(qe, window);
                b.Ed(re, window);
                b.options.wL && b.options.wL.call(b, a);
                if (b.vk) d = b.scale * b.Eo,
                d = Math.max(b.options.uk, d),
                d = Math.min(b.options.op, d),
                b.Eo = d / b.scale,
                b.scale = d,
                b.x = b.hx - b.hx * b.Eo + b.x,
                b.y = b.ix - b.ix * b.Eo + b.y,
                b.Bb.style[be] = "200ms",
                b.Bb.style[$d] = "translate(" + b.x + "px," + b.y + "px) scale(" + b.scale + ")" + ve,
                b.vk = q,
                b.refresh(),
                b.options.Jo && b.options.Jo.call(b, a);
                else {
                    if (b.Zg) {
                        if (300 > i && b.options.KD) {
                            f = d ? b.YG(d - b.gt, i, -b.x, b.zx - b.Bt + b.x, b.options.pr ? b.Bt: 0) : f;
                            g = e ? b.YG(e - b.ht, i, -b.y, 0 > b.Yc ? b.Wo - b.Mm + b.y - b.Ye: 0, b.options.pr ? b.Mm: 0) : g;
                            d = b.x + f.pa;
                            e = b.y + g.pa;
                            if (0 < b.x && 0 < d || b.x < b.Qd && d < b.Qd) f = {
                                pa: 0,
                                time: 0
                            };
                            if (b.y > b.Ye && e > b.Ye || b.y < b.Yc && e < b.Yc) g = {
                                pa: 0,
                                time: 0
                            }
                        }
                        f.pa || g.pa ? (c = Qd.max(Qd.max(f.time, g.time), 10), b.options.ct && (f = d - b.tv, g = e - b.uv, Qd.abs(f) < b.options.Jx && Qd.abs(g) < b.options.Jx ? b.scrollTo(b.tv, b.uv, 200) : (f = b.RH(d, e), d = f.x, e = f.y, c = Qd.max(f.time, c))), b.scrollTo(Qd.round(d), Qd.round(e), c)) : b.options.ct ? (f = d - b.tv, g = e - b.uv, Qd.abs(f) < b.options.Jx && Qd.abs(g) < b.options.Jx ? b.scrollTo(b.tv, b.uv, 200) : (f = b.RH(b.x, b.y), (f.x != b.x || f.y != b.y) && b.scrollTo(f.x, f.y, f.time))) : b.zn(200)
                    } else {
                        if (je) if (b.nJ && b.options.zoom) clearTimeout(b.nJ),
                        b.nJ = p,
                        b.options.Ko && b.options.Ko.call(b, a),
                        b.zoom(b.jg, b.kg, 1 == b.scale ? b.options.jU: 1),
                        b.options.Jo && setTimeout(function() {
                            b.options.Jo.call(b, a)
                        },
                        200);
                        else if (this.options.eD) {
                            for (d = c.target; 1 != d.nodeType;) d = d.parentNode;
                            e = d.tagName.toLowerCase();
                            "select" != e && "input" != e && "textarea" != e ? (e = Pd.createEvent("MouseEvents"), e.initMouseEvent("click", o, o, a.view, 1, c.screenX, c.screenY, c.clientX, c.clientY, a.ctrlKey, a.altKey, a.shiftKey, a.metaKey, 0, p), e.KP = o, d.dispatchEvent(e)) : d.focus()
                        }
                        b.zn(400)
                    }
                    b.options.KL && b.options.KL.call(b, a)
                }
            }
        },
        zn: function(a) {
            var b = 0 <= this.x ? 0 : this.x < this.Qd ? this.Qd: this.x,
            c = this.y >= this.Ye || 0 < this.Yc ? this.Ye: this.y < this.Yc ? this.Yc: this.y;
            if (b == this.x && c == this.y) {
                if (this.Zg && (this.Zg = q, this.options.fx && this.options.fx.call(this)), this.$i && this.options.Iw && ("webkit" == Sd && (this.oK.style[ee] = "300ms"), this.oK.style.opacity = "0"), this.ij && this.options.Iw)"webkit" == Sd && (this.gN.style[ee] = "300ms"),
                this.gN.style.opacity = "0"
            } else this.scrollTo(b, c, a || 0)
        },
        KS: function(a) {
            var b = this,
            c, d;
            if ("wheelDeltaX" in a) c = a.wheelDeltaX / 12,
            d = a.wheelDeltaY / 12;
            else if ("wheelDelta" in a) c = d = a.wheelDelta / 12;
            else if ("detail" in a) c = d = 3 * -a.detail;
            else return;
            if ("zoom" == b.options.nN) {
                if (d = b.scale * Math.pow(2, 1 / 3 * (d ? d / Math.abs(d) : 0)), d < b.options.uk && (d = b.options.uk), d > b.options.op && (d = b.options.op), d != b.scale) ! b.Ux && b.options.Ko && b.options.Ko.call(b, a),
                b.Ux++,
                b.zoom(a.pageX, a.pageY, d, 400),
                setTimeout(function() {
                    b.Ux--; ! b.Ux && b.options.Jo && b.options.Jo.call(b, a)
                },
                400)
            } else c = b.x + c,
            d = b.y + d,
            0 < c ? c = 0 : c < b.Qd && (c = b.Qd),
            d > b.Ye ? d = b.Ye: d < b.Yc && (d = b.Yc),
            0 > b.Yc && b.scrollTo(c, d, 0)
        },
        GS: function(a) {
            a.target == this.Bb && (this.Ed(se), this.FA())
        },
        FA: function() {
            var a = this,
            b = a.x,
            c = a.y,
            d = Date.now(),
            e,
            f,
            g;
            a.ul || (a.hj.length ? (e = a.hj.shift(), e.x == b && e.y == c && (e.time = 0), a.ul = o, a.Zg = o, a.options.gi) ? (a.$H(e.time), a.Kq(e.x, e.y), a.ul = q, e.time ? a.P(se) : a.zn(0)) : (g = function() {
                var i = Date.now(),
                k;
                if (i >= d + e.time) {
                    a.Kq(e.x, e.y);
                    a.ul = q;
                    a.options.OW && a.options.OW.call(a);
                    a.FA()
                } else {
                    i = (i - d) / e.time - 1;
                    f = Qd.sqrt(1 - i * i);
                    i = (e.x - b) * f + b;
                    k = (e.y - c) * f + c;
                    a.Kq(i, k);
                    if (a.ul) a.ZA = te(g)
                }
            },
            g()) : a.zn(400))
        },
        $H: function(a) {
            a += "ms";
            this.Bb.style[be] = a;
            this.$i && (this.MV.style[be] = a);
            this.ij && (this.WY.style[be] = a)
        },
        YG: function(a, b, c, d, e) {
            var b = Qd.abs(a) / b,
            f = b * b / 0.0012;
            0 < a && f > c ? (c += e / (6 / (6.0E-4 * (f / b))), b = b * c / f, f = c) : 0 > a && f > d && (d += e / (6 / (6.0E-4 * (f / b))), b = b * d / f, f = d);
            return {
                pa: f * (0 > a ? -1 : 1),
                time: Qd.round(b / 6.0E-4)
            }
        },
        Cj: function(a) {
            for (var b = -a.offsetLeft,
            c = -a.offsetTop; a = a.offsetParent;) b -= a.offsetLeft,
            c -= a.offsetTop;
            a != this.Lm && (b *= this.scale, c *= this.scale);
            return {
                left: b,
                top: c
            }
        },
        RH: function(a, b) {
            var c, d, e;
            e = this.De.length - 1;
            c = 0;
            for (d = this.De.length; c < d; c++) if (a >= this.De[c]) {
                e = c;
                break
            }
            e == this.DB && (0 < e && 0 > this.MB) && e--;
            a = this.De[e];
            d = (d = Qd.abs(a - this.De[this.DB])) ? 500 * (Qd.abs(this.x - a) / d) : 0;
            this.DB = e;
            e = this.$e.length - 1;
            for (c = 0; c < e; c++) if (b >= this.$e[c]) {
                e = c;
                break
            }
            e == this.EB && (0 < e && 0 > this.NB) && e--;
            b = this.$e[e];
            c = (c = Qd.abs(b - this.$e[this.EB])) ? 500 * (Qd.abs(this.y - b) / c) : 0;
            this.EB = e;
            e = Qd.round(Qd.max(d, c)) || 200;
            return {
                x: a,
                y: b,
                time: e
            }
        },
        P: function(a, b, c) { (b || this.Bb).addEventListener(a, this, !!c)
        },
        Ed: function(a, b, c) { (b || this.Bb).removeEventListener(a, this, !!c)
        },
        JB: ga(2),
        refresh: function() {
            var a, b, c, d = 0;
            b = 0;
            this.scale < this.options.uk && (this.scale = this.options.uk);
            this.Bt = this.Lm.clientWidth || 1;
            this.Mm = this.Lm.clientHeight || 1;
            this.Ye = -this.options.BY || 0;
            this.zx = Qd.round(this.Bb.offsetWidth * this.scale);
            this.Wo = Qd.round((this.Bb.offsetHeight + this.Ye) * this.scale);
            this.Qd = this.Bt - this.zx;
            this.Yc = this.Mm - this.Wo + this.Ye;
            this.NB = this.MB = 0;
            this.options.GL && this.options.GL.call(this);
            this.yo = this.options.yo && 0 > this.Qd;
            this.lp = this.options.lp && (!this.options.oT && !this.yo || this.Wo > this.Mm);
            this.$i = this.yo && this.options.$i;
            this.ij = this.lp && this.options.ij && this.Wo > this.Mm;
            a = this.Cj(this.Lm);
            this.OE = -a.left;
            this.PE = -a.top;
            if ("string" == typeof this.options.ct) {
                this.De = [];
                this.$e = [];
                c = this.Bb.querySelectorAll(this.options.ct);
                a = 0;
                for (b = c.length; a < b; a++) d = this.Cj(c[a]),
                d.left += this.OE,
                d.top += this.PE,
                this.De[a] = d.left < this.Qd ? this.Qd: d.left * this.scale,
                this.$e[a] = d.top < this.Yc ? this.Yc: d.top * this.scale
            } else if (this.options.ct) {
                for (this.De = []; d >= this.Qd;) this.De[b] = d,
                d -= this.Bt,
                b++;
                this.Qd % this.Bt && (this.De[this.De.length] = this.Qd - this.De[this.De.length - 1] + this.De[this.De.length - 1]);
                b = d = 0;
                for (this.$e = []; d >= this.Yc;) this.$e[b] = d,
                d -= this.Mm,
                b++;
                this.Yc % this.Mm && (this.$e[this.$e.length] = this.Yc - this.$e[this.$e.length - 1] + this.$e[this.$e.length - 1])
            }
            this.Su("h");
            this.Su("v");
            this.vk || (this.Bb.style[be] = "0", this.zn(400))
        },
        scrollTo: function(a, b, c, d) {
            var e = a;
            this.stop();
            e.length || (e = [{
                x: a,
                y: b,
                time: c,
                iX: d
            }]);
            a = 0;
            for (b = e.length; a < b; a++) e[a].iX && (e[a].x = this.x - e[a].x, e[a].y = this.y - e[a].y),
            this.hj.push({
                x: e[a].x,
                y: e[a].y,
                time: e[a].time || 0
            });
            this.FA()
        },
        disable: function() {
            this.stop();
            this.zn(0);
            this.enabled = q;
            this.Ed(pe, window);
            this.Ed(qe, window);
            this.Ed(re, window)
        },
        enable: function() {
            this.enabled = o
        },
        stop: function() {
            this.options.gi ? this.Ed(se) : ue(this.ZA);
            this.hj = [];
            this.ul = this.Zg = q
        },
        zoom: function(a, b, c, d) {
            var e = c / this.scale;
            this.options.tk && (this.vk = o, d = d === j ? 200 : d, a = a - this.OE - this.x, b = b - this.PE - this.y, this.x = a - a * e + this.x, this.y = b - b * e + this.y, this.scale = c, this.refresh(), this.x = 0 < this.x ? 0 : this.x < this.Qd ? this.Qd: this.x, this.y = this.y > this.Ye ? this.Ye: this.y < this.Yc ? this.Yc: this.y, this.Bb.style[be] = d + "ms", this.Bb.style[$d] = "translate(" + this.x + "px," + this.y + "px) scale(" + c + ")" + ve, this.vk = q)
        }
    };
    function Zd(a) {
        if ("" === Sd) return a;
        a = a.charAt(0).toUpperCase() + a.substr(1);
        return Sd + a
    }
    Rd = p;
    function xe(a) {
        this.k = {
            anchor: Vb,
            offset: new K(0, 0),
            maxWidth: "100%",
            imageHeight: 80
        };
        var a = a || {},
        b;
        for (b in a) this.k[b] = a[b];
        this.fl = new ac(p, {
            yf: "api"
        });
        this.Dj = [];
        this.G = p;
        this.ti = {
            height: this.k.imageHeight,
            width: this.k.imageHeight * ye
        };
        this.gj = this.uA = this.zl = this.Kc = p
    }
    z.qm(function(a) {
        var b = p;
        a.addEventListener("position_changed",
        function() {
            a.k.albumsControl === o && (b ? b.tx(a.Gb()) : (b = new xe(a.k.albumsControlOptions), b.fa(a)))
        });
        a.addEventListener("albums_visible_changed",
        function() {
            a.k.albumsControl === o ? (b ? b.tx(a.Gb()) : (b = new xe(a.k.albumsControlOptions), b.fa(a)), b.show()) : b.J()
        });
        a.addEventListener("albums_options_changed",
        function() {
            b && b.ap(a.k.albumsControlOptions)
        })
    });
    var ye = 1.8;
    w.extend(xe.prototype, {
        ap: function(a) {
            for (var b in a) this.k[b] = a[b];
            a = this.k.imageHeight + "px";
            this.lc(this.k.anchor);
            this.A.style.width = isNaN(Number(this.k.maxWidth)) === o ? this.k.maxWidth: this.k.maxWidth + "px";
            this.A.style.height = a;
            this.Gj.style.height = a;
            this.Dh.style.height = a;
            this.ti = {
                height: this.k.imageHeight,
                width: this.k.imageHeight * ye
            };
            this.Fj.style.height = this.ti.height - 6 + "px";
            this.Fj.style.width = this.ti.width - 6 + "px";
            this.tx(this.G.Gb(), o)
        },
        fa: function(a) {
            this.G = a;
            this.ur();
            this.sO();
            this.$V();
            this.tx(a.Gb())
        },
        ur: function() {
            var a = this.k.imageHeight + "px";
            this.A = J("div");
            var b = this.A.style;
            b.position = "absolute";
            b.zIndex = "2000";
            b.width = isNaN(Number(this.k.maxWidth)) === o ? this.k.maxWidth: this.k.maxWidth + "px";
            b.padding = "8px 0";
            b.background = "white";
            b.visibility = "hidden";
            b.height = a;
            this.Gj = J("div");
            b = this.Gj.style;
            b.position = "absolute";
            b.overflow = "hidden";
            b.width = "100%";
            b.height = a;
            this.Dh = J("div");
            b = this.Dh.style;
            b.height = a;
            this.Gj.appendChild(this.Dh);
            this.A.appendChild(this.Gj);
            this.G.A.appendChild(this.A);
            this.Fj = J("div", {
                "class": "pano_photo_item_seleted"
            });
            this.Fj.style.height = this.ti.height - 6 + "px";
            this.Fj.style.width = this.ti.width - 6 + "px";
            this.lc(this.k.anchor)
        },
        tG: function(a) {
            for (var b = this.Dj,
            c = b.length - 1; 0 <= c; c--) if (b[c].panoId == a) return c;
            return - 1
        },
        tx: function(a, b) {
            if (b || !this.Dj[this.Kc] || !(this.Dj[this.Kc].panoId == a && 3 !== this.Dj[this.Kc].recoType)) {
                var c = this,
                d = this.tG(a); ! b && -1 !== d && this.Dj[d] && 3 !== this.Dj[d].recoType ? this.$o(d) : this.rV(function(a) {
                    c.Dj = a;
                    c.Pq(a);
                    0 == a.length ? c.J() : c.show()
                })
            }
        },
        Pq: function(a) {
            this.Dh.innerHTML = this.bV(a);
            this.Dh.style.width = (this.ti.width + 8) * a.length + 8 + "px";
            var a = this.A.offsetWidth,
            b = this.Dh.offsetWidth;
            this.gj.Ur && (b += this.gj.Ur());
            b < a ? this.A.style.width = b + "px": (this.A.style.width = isNaN(Number(this.k.maxWidth)) === o ? this.k.maxWidth: this.k.maxWidth + "px", b < this.A.offsetWidth && (this.A.style.width = b + "px"));
            this.gj.refresh();
            this.uA = this.Dh.children;
            this.Dh.appendChild(this.Fj);
            this.Fj.style.left = "-100000px";
            a = this.tG(this.G.Gb(), this.UZ); - 1 !== a && this.$o(a)
        },
        bV: function(a) {
            for (var b, c, d, e, f = [], g = this.ti.height, i = this.ti.width, k = 0; k < a.length; k++) b = a[k],
            recoType = b.recoType,
            c = b.panoId,
            d = b.name,
            e = b.heading,
            b = b.pitch,
            c = Od.aK(c, e, b, 198, 108),
            f.push('<a href="javascript:void(0);" class="pano_photo_item" data-index="' + k + '"><img style="width:' + (i - 2) + "px;height:" + (g - 2) + 'px;" data-index="' + k + '" name="' + d + '" src="' + c + '" alt="' + d + '"/><span class="pano_photo_decs" data-index="' + k + '" style="width:' + i + "px;font-size:" + Math.floor(g / 6) + "px; line-height:" + Math.floor(g / 6) + 'px;"><em class="pano_poi_' + recoType + '"></em>' + d + "</span></a>");
            return f.join("")
        },
        rV: function(a) {
            var b = this,
            c = this.G.Gb();
            this.fl.Cw(c,
            function(d) {
                b.G.Gb() === c && a(d)
            })
        },
        lc: function(a) {
            if (!Va(a) || isNaN(a) || a < Tb || 3 < a) a = this.defaultAnchor;
            var b = this.A,
            c = this.k.offset.width,
            d = this.k.offset.height;
            b.style.left = b.style.top = b.style.right = b.style.bottom = "auto";
            switch (a) {
            case Tb:
                b.style.top = d + "px";
                b.style.left = c + "px";
                break;
            case Ub:
                b.style.top = d + "px";
                b.style.right = c + "px";
                break;
            case Vb:
                b.style.bottom = d + "px";
                b.style.left = c + "px";
                break;
            case 3:
                b.style.bottom = d + "px",
                b.style.right = c + "px"
            }
        },
        sO: function() {
            this.qO()
        },
        qO: function() {
            var a = this;
            w.F(this.A, "touchstart",
            function(a) {
                a.stopPropagation()
            });
            w.F(this.Gj, "click",
            function(b) {
                if ((b = (b.srcElement || b.target).getAttribute("data-index")) && b != a.Kc) a.$o(b),
                a.G.pc(a.Dj[b].panoId)
            });
            w.F(this.Dh, "mouseover",
            function(b) {
                b = (b.srcElement || b.target).getAttribute("data-index");
                b !== p && a.WI(b, o)
            });
            this.G.addEventListener("size_changed",
            function() {
                isNaN(Number(a.k.maxWidth)) && a.ap({
                    maxWidth: a.k.maxWidth
                })
            })
        },
        $o: function(a) {
            this.Fj.style.left = this.uA[a].offsetLeft + 8 + "px";
            this.Fj.setAttribute("data-index", this.uA[a].getAttribute("data-index"));
            this.Kc = a;
            this.WI(a)
        },
        WI: function(a, b) {
            var c = this.ti.width + 8,
            d = 0;
            this.gj.Ur && (d = this.gj.Ur() / 2);
            var e = this.Gj.offsetWidth - 2 * d,
            f = this.Dh.offsetLeft || this.gj.x,
            f = f - d,
            g = -a * c;
            g > f && this.gj.scrollTo(g + d);
            c = g - c;
            f -= e;
            c < f && (!b || b && 8 < g - f) && this.gj.scrollTo(c + e + d)
        },
        $V: function() {
            this.gj = G() ? new we(this.Gj, {
                pr: q,
                KD: o,
                $i: q,
                ij: q,
                lp: q,
                dL: o,
                hB: o,
                eD: o
            }) : new ze(this.Gj)
        },
        J: function() {
            this.A.style.visibility = "hidden"
        },
        show: function() {
            this.A.style.visibility = "visible"
        }
    });
    function ze(a) {
        this.A = a;
        this.Bg = a.children[0];
        this.Zq = p;
        this.yk = 20;
        this.fa()
    }
    ze.prototype = {
        fa: function() {
            this.Bg.style.position = "relative";
            this.refresh();
            this.ur();
            this.xl()
        },
        refresh: function() {
            this.vn = this.A.offsetWidth - this.Ur();
            this.Vz = -(this.Bg.offsetWidth - this.vn - this.yk);
            this.Fu = this.yk;
            this.Bg.style.left = this.Fu + "px";
            this.Bg.children[0] && (this.Zq = this.Bg.children[0].offsetWidth);
            this.wh && (this.wh.children[0].style.marginTop = this.Sq.children[0].style.marginTop = this.wh.offsetHeight / 2 - this.wh.children[0].offsetHeight / 2 + "px")
        },
        Ur: function() {
            return 2 * this.yk
        },
        ur: function() {
            this.Tu = J("div");
            this.Tu.innerHTML = '<a class="pano_photo_arrow_l" href="javascript:void(0)" title="\u4e0a\u4e00\u9875"><span class="pano_arrow_l"></span></a><a class="pano_photo_arrow_r" href="javascript:void(0)" title="\u4e0b\u4e00\u9875"><span class="pano_arrow_r"></span></a>';
            this.wh = this.Tu.children[0];
            this.Sq = this.Tu.children[1];
            this.A.appendChild(this.Tu);
            this.wh.children[0].style.marginTop = this.Sq.children[0].style.marginTop = this.wh.offsetHeight / 2 - this.wh.children[0].offsetHeight / 2 + "px"
        },
        xl: function() {
            var a = this;
            w.F(this.wh, "click",
            function() {
                a.scrollTo(a.Bg.offsetLeft + a.vn)
            });
            w.F(this.Sq, "click",
            function() {
                a.scrollTo(a.Bg.offsetLeft - a.vn)
            })
        },
        HS: function() {
            w.B.Xb(this.wh, "pano_arrow_disable");
            w.B.Xb(this.Sq, "pano_arrow_disable");
            var a = this.Bg.offsetLeft;
            a >= this.Fu && w.B.Xa(this.wh, "pano_arrow_disable");
            a - this.vn <= this.Vz && w.B.Xa(this.Sq, "pano_arrow_disable")
        },
        scrollTo: function(a) {
            a = a < this.Bg.offsetLeft ? Math.ceil((a - this.yk - this.vn) / this.Zq) * this.Zq + this.vn + this.yk - 8 : Math.ceil((a - this.yk) / this.Zq) * this.Zq + this.yk;
            a < this.Vz ? a = this.Vz: a > this.Fu && (a = this.Fu);
            var b = this.Bg.offsetLeft,
            c = this;
            new tb({
                Lc: 60,
                bc: ub.fC,
                duration: 300,
                la: function(d) {
                    c.Bg.style.left = b + (a - b) * d + "px"
                },
                finish: function() {
                    c.HS()
                }
            })
        }
    };
    z.Map = Ka;
    z.Hotspot = hb;
    z.MapType = Pc;
    z.Point = H;
    z.Pixel = P;
    z.Size = K;
    z.Bounds = eb;
    z.TileLayer = Cc;
    z.Projection = fc;
    z.MercatorProjection = Q;
    z.PerspectiveProjection = gb;
    z.Copyright = function(a, b, c) {
        this.id = a;
        this.Ta = b;
        this.content = c
    };
    z.Overlay = hc;
    z.Label = pc;
    z.GroundOverlay = qc;
    z.PointCollection = uc;
    z.Marker = R;
    z.Icon = lc;
    z.IconSequence = nc;
    z.Symbol = mc;
    z.Polyline = yc;
    z.Polygon = xc;
    z.InfoWindow = oc;
    z.Circle = zc;
    z.Control = Sb;
    z.NavigationControl = ib;
    z.GeolocationControl = Wb;
    z.OverviewMapControl = lb;
    z.CopyrightControl = Xb;
    z.ScaleControl = jb;
    z.MapTypeControl = mb;
    z.PanoramaControl = Zb;
    z.TrafficLayer = Mc;
    z.CustomLayer = nb;
    z.ContextMenu = bc;
    z.MenuItem = ec;
    z.LocalSearch = bb;
    z.TransitRoute = od;
    z.DrivingRoute = rd;
    z.WalkingRoute = sd;
    z.Autocomplete = zd;
    z.Geocoder = ud;
    z.LocalCity = wd;
    z.Geolocation = Geolocation;
    z.BusLineSearch = yd;
    z.Boundary = xd;
    z.VectorCloudLayer = Kc;
    z.VectorTrafficLayer = Lc;
    z.Panorama = Na;
    z.PanoramaLabel = Fd;
    z.PanoramaService = ac;
    z.PanoramaCoverageLayer = $b;
    z.PanoramaFlashInterface = Md;
    function U(a, b) {
        for (var c in b) a[c] = b[c]
    }
    U(window, {
        BMap: z,
        _jsload2: function(a, b) {
            ja.Mx.jW && ja.Mx.set(a, b);
            I.vT(a, b)
        },
        BMAP_API_VERSION: "2.0"
    });
    var V = Ka.prototype;
    U(V, {
        getBounds: V.Kd,
        getCenter: V.za,
        getMapType: V.ia,
        getSize: V.Lb,
        setSize: V.rd,
        getViewport: V.gs,
        getZoom: V.U,
        centerAndZoom: V.Yd,
        panTo: V.$h,
        panBy: V.ig,
        setCenter: V.Hf,
        setCurrentCity: V.pE,
        setMapType: V.mg,
        setViewport: V.fh,
        setZoom: V.Bc,
        highResolutionEnabled: V.Rg,
        zoomTo: V.qg,
        zoomIn: V.QE,
        zoomOut: V.RE,
        addHotspot: V.zv,
        removeHotspot: V.kX,
        clearHotspots: V.Bl,
        checkResize: V.yT,
        addControl: V.xv,
        removeControl: V.XL,
        getContainer: V.Ea,
        addContextMenu: V.Mn,
        removeContextMenu: V.Po,
        addOverlay: V.xa,
        removeOverlay: V.Hb,
        clearOverlays: V.TI,
        openInfoWindow: V.zb,
        closeInfoWindow: V.Jc,
        pointToOverlayPixel: V.Ee,
        overlayPixelToPoint: V.NL,
        getInfoWindow: V.Pg,
        getOverlays: V.TC,
        getPanes: function() {
            return {
                floatPane: this.Vd.vC,
                markerMouseTarget: this.Vd.ED,
                floatShadow: this.Vd.JJ,
                labelPane: this.Vd.yD,
                markerPane: this.Vd.hL,
                markerShadow: this.Vd.iL,
                mapPane: this.Vd.ys
            }
        },
        addTileLayer: V.Fg,
        removeTileLayer: V.dh,
        pixelToPoint: V.mb,
        pointToPixel: V.Ub,
        setFeatureStyle: V.Zo,
        selectBaseElement: V.s1,
        setMapStyle: V.Ss,
        enable3DBuilding: V.co,
        disable3DBuilding: V.dU
    });
    var Ae = Pc.prototype;
    U(Ae, {
        getTileLayer: Ae.DV,
        getMinZoom: Ae.no,
        getMaxZoom: Ae.Rl,
        getProjection: Ae.so,
        getTextColor: Ae.es,
        getTips: Ae.fs
    });
    U(window, {
        BMAP_NORMAL_MAP: La,
        BMAP_PERSPECTIVE_MAP: Oa,
        BMAP_SATELLITE_MAP: Xa,
        BMAP_HYBRID_MAP: Qa
    });
    var Be = Q.prototype;
    U(Be, {
        lngLatToPoint: Be.Vg,
        pointToLngLat: Be.bi
    });
    var Ce = gb.prototype;
    U(Ce, {
        lngLatToPoint: Ce.Vg,
        pointToLngLat: Ce.bi
    });
    var De = eb.prototype;
    U(De, {
        equals: De.Za,
        containsPoint: De.sr,
        containsBounds: De.JT,
        intersects: De.ns,
        extend: De.extend,
        getCenter: De.za,
        isEmpty: De.ej,
        getSouthWest: De.Ce,
        getNorthEast: De.zf,
        toSpan: De.GE
    });
    var Ee = hc.prototype;
    U(Ee, {
        isVisible: Ee.Ug,
        show: Ee.show,
        hide: Ee.J
    });
    hc.getZIndex = hc.Xl;
    var Fe = fb.prototype;
    U(Fe, {
        openInfoWindow: Fe.zb,
        closeInfoWindow: Fe.Jc,
        enableMassClear: Fe.Ti,
        disableMassClear: Fe.fU,
        show: Fe.show,
        hide: Fe.J,
        getMap: Fe.vw,
        addContextMenu: Fe.Mn,
        removeContextMenu: Fe.Po
    });
    var Ie = R.prototype;
    U(Ie, {
        setIcon: Ie.Ob,
        getIcon: Ie.mo,
        setPosition: Ie.ha,
        getPosition: Ie.V,
        setOffset: Ie.ge,
        getOffset: Ie.Af,
        getLabel: Ie.OC,
        setLabel: Ie.Am,
        setTitle: Ie.qc,
        setTop: Ie.ei,
        enableDragging: Ie.Rb,
        disableDragging: Ie.OB,
        setZIndex: Ie.Xs,
        getMap: Ie.vw,
        setAnimation: Ie.zm,
        setShadow: Ie.Dx,
        hide: Ie.J,
        setRotation: Ie.cp,
        getRotation: Ie.eK
    });
    U(window, {
        BMAP_ANIMATION_DROP: 1,
        BMAP_ANIMATION_BOUNCE: 2
    });
    var Je = pc.prototype;
    U(Je, {
        setStyle: Je.sd,
        setStyles: Je.di,
        setContent: Je.Pc,
        setPosition: Je.ha,
        getPosition: Je.V,
        setOffset: Je.ge,
        getOffset: Je.Af,
        setTitle: Je.qc,
        setZIndex: Je.Xs,
        getMap: Je.vw,
        getContent: Je.Uj
    });
    var Ke = lc.prototype;
    U(Ke, {
        setImageUrl: Ke.SX,
        setSize: Ke.rd,
        setAnchor: Ke.lc,
        setImageOffset: Ke.Rs,
        setImageSize: Ke.QX,
        setInfoWindowAnchor: Ke.UX,
        setPrintImageUrl: Ke.cY
    });
    var Le = oc.prototype;
    U(Le, {
        redraw: Le.Sd,
        setTitle: Le.qc,
        setContent: Le.Pc,
        getContent: Le.Uj,
        getPosition: Le.V,
        enableMaximize: Le.Jg,
        disableMaximize: Le.bw,
        isOpen: Le.Ja,
        setMaxContent: Le.Ts,
        maximize: Le.Yw,
        enableAutoPan: Le.Or
    });
    var Me = jc.prototype;
    U(Me, {
        getPath: Me.be,
        setPath: Me.he,
        setPositionAt: Me.Cm,
        getStrokeColor: Me.xV,
        setStrokeWeight: Me.fp,
        getStrokeWeight: Me.hK,
        setStrokeOpacity: Me.dp,
        getStrokeOpacity: Me.yV,
        setFillOpacity: Me.Qs,
        getFillOpacity: Me.XU,
        setStrokeStyle: Me.ep,
        getStrokeStyle: Me.gK,
        getFillColor: Me.WU,
        getBounds: Me.Kd,
        enableEditing: Me.xf,
        disableEditing: Me.eU
    });
    var Ne = zc.prototype;
    U(Ne, {
        setCenter: Ne.Hf,
        getCenter: Ne.za,
        getRadius: Ne.cK,
        setRadius: Ne.af
    });
    var Oe = xc.prototype;
    U(Oe, {
        getPath: Oe.be,
        setPath: Oe.he,
        setPositionAt: Oe.Cm
    });
    var Pe = hb.prototype;
    U(Pe, {
        getPosition: Pe.V,
        setPosition: Pe.ha,
        getText: Pe.YC,
        setText: Pe.Ws
    });
    H.prototype.equals = H.prototype.Za;
    P.prototype.equals = P.prototype.Za;
    K.prototype.equals = K.prototype.Za;
    U(window, {
        BMAP_ANCHOR_TOP_LEFT: Tb,
        BMAP_ANCHOR_TOP_RIGHT: Ub,
        BMAP_ANCHOR_BOTTOM_LEFT: Vb,
        BMAP_ANCHOR_BOTTOM_RIGHT: 3
    });
    var Qe = Sb.prototype;
    U(Qe, {
        setAnchor: Qe.lc,
        getAnchor: Qe.BC,
        setOffset: Qe.ge,
        getOffset: Qe.Af,
        show: Qe.show,
        hide: Qe.J,
        isVisible: Qe.Ug,
        toString: Qe.toString
    });
    var Re = ib.prototype;
    U(Re, {
        getType: Re.wo,
        setType: Re.Dm
    });
    U(window, {
        BMAP_NAVIGATION_CONTROL_LARGE: 0,
        BMAP_NAVIGATION_CONTROL_SMALL: 1,
        BMAP_NAVIGATION_CONTROL_PAN: 2,
        BMAP_NAVIGATION_CONTROL_ZOOM: 3
    });
    var Se = lb.prototype;
    U(Se, {
        changeView: Se.Zd,
        setSize: Se.rd,
        getSize: Se.Lb
    });
    var Te = jb.prototype;
    U(Te, {
        getUnit: Te.HV,
        setUnit: Te.vE
    });
    U(window, {
        BMAP_UNIT_METRIC: "metric",
        BMAP_UNIT_IMPERIAL: "us"
    });
    var Ue = Xb.prototype;
    U(Ue, {
        addCopyright: Ue.yv,
        removeCopyright: Ue.bE,
        getCopyright: Ue.Pl,
        getCopyrightCollection: Ue.IC
    });
    U(window, {
        BMAP_MAPTYPE_CONTROL_HORIZONTAL: Yb,
        BMAP_MAPTYPE_CONTROL_DROPDOWN: 1,
        BMAP_MAPTYPE_CONTROL_MAP: 2
    });
    var Ve = Cc.prototype;
    U(Ve, {
        getMapType: Ve.ia,
        getCopyright: Ve.Pl,
        isTransparentPng: Ve.vs
    });
    var We = bc.prototype;
    U(We, {
        addItem: We.Av,
        addSeparator: We.VA,
        removeSeparator: We.dE
    });
    var Xe = ec.prototype;
    U(Xe, {
        setText: Xe.Ws
    });
    var Ye = T.prototype;
    U(Ye, {
        getStatus: Ye.Ul,
        setSearchCompleteCallback: Ye.tE,
        getPageCapacity: Ye.Ve,
        setPageCapacity: Ye.bp,
        setLocation: Ye.Bm,
        disableFirstResultSelection: Ye.PB,
        enableFirstResultSelection: Ye.kC,
        gotoPage: Ye.Yl,
        searchNearby: Ye.Xo,
        searchInBounds: Ye.ym,
        search: Ye.search
    });
    U(window, {
        BMAP_STATUS_SUCCESS: 0,
        BMAP_STATUS_CITY_LIST: 1,
        BMAP_STATUS_UNKNOWN_LOCATION: 2,
        BMAP_STATUS_UNKNOWN_ROUTE: 3,
        BMAP_STATUS_INVALID_KEY: 4,
        BMAP_STATUS_INVALID_REQUEST: 5,
        BMAP_STATUS_PERMISSION_DENIED: 6,
        BMAP_STATUS_SERVICE_UNAVAILABLE: 7,
        BMAP_STATUS_TIMEOUT: 8
    });
    U(window, {
        BMAP_POI_TYPE_NORMAL: 0,
        BMAP_POI_TYPE_BUSSTOP: 1,
        BMAP_POI_TYPE_BUSLINE: 2,
        BMAP_POI_TYPE_SUBSTOP: 3,
        BMAP_POI_TYPE_SUBLINE: 4
    });
    U(window, {
        BMAP_TRANSIT_POLICY_LEAST_TIME: 0,
        BMAP_TRANSIT_POLICY_LEAST_TRANSFER: 2,
        BMAP_TRANSIT_POLICY_LEAST_WALKING: 3,
        BMAP_TRANSIT_POLICY_AVOID_SUBWAYS: 4,
        BMAP_LINE_TYPE_BUS: 0,
        BMAP_LINE_TYPE_SUBWAY: 1,
        BMAP_LINE_TYPE_FERRY: 2
    });
    var Ze = nd.prototype;
    U(Ze, {
        clearResults: Ze.ze
    });
    pd = od.prototype;
    U(pd, {
        setPolicy: pd.Vs,
        toString: pd.toString,
        setPageCapacity: pd.bp
    });
    U(window, {
        BMAP_DRIVING_POLICY_LEAST_TIME: 0,
        BMAP_DRIVING_POLICY_LEAST_DISTANCE: 1,
        BMAP_DRIVING_POLICY_AVOID_HIGHWAYS: 2
    });
    U(window, {
        BMAP_HIGHLIGHT_STEP: 1,
        BMAP_HIGHLIGHT_ROUTE: 2
    });
    U(window, {
        BMAP_ROUTE_TYPE_DRIVING: $c,
        BMAP_ROUTE_TYPE_WALKING: Zc
    });
    U(window, {
        BMAP_ROUTE_STATUS_NORMAL: ad,
        BMAP_ROUTE_STATUS_EMPTY: 1,
        BMAP_ROUTE_STATUS_ADDRESS: 2
    });
    var $e = rd.prototype;
    U($e, {
        setPolicy: $e.Vs
    });
    var af = zd.prototype;
    U(af, {
        show: af.show,
        hide: af.J,
        setTypes: af.uE,
        setLocation: af.Bm,
        search: af.search,
        setInputValue: af.Ax
    });
    U(nb.prototype, {});
    var bf = xd.prototype;
    U(bf, {
        get: bf.get
    });
    U($b.prototype, {});
    U(cb.prototype, {});
    U(window, {
        BMAP_POINT_DENSITY_HIGH: 200,
        BMAP_POINT_DENSITY_MEDIUM: Oc,
        BMAP_POINT_DENSITY_LOW: 50
    });
    U(window, {
        BMAP_POINT_SHAPE_STAR: 1,
        BMAP_POINT_SHAPE_WATERDROP: 2,
        BMAP_POINT_SHAPE_CIRCLE: rc,
        BMAP_POINT_SHAPE_SQUARE: 4,
        BMAP_POINT_SHAPE_RHOMBUS: 5
    });
    U(window, {
        BMAP_POINT_SIZE_TINY: 1,
        BMAP_POINT_SIZE_SMALLER: 2,
        BMAP_POINT_SIZE_SMALL: 3,
        BMAP_POINT_SIZE_NORMAL: sc,
        BMAP_POINT_SIZE_BIG: 5,
        BMAP_POINT_SIZE_BIGGER: 6,
        BMAP_POINT_SIZE_HUGE: 7
    });
    U(window, {
        BMap_Symbol_SHAPE_CAMERA: 11,
        BMap_Symbol_SHAPE_WARNING: 12,
        BMap_Symbol_SHAPE_SMILE: 13,
        BMap_Symbol_SHAPE_CLOCK: 14,
        BMap_Symbol_SHAPE_POINT: 9,
        BMap_Symbol_SHAPE_PLANE: 10,
        BMap_Symbol_SHAPE_CIRCLE: 1,
        BMap_Symbol_SHAPE_RECTANGLE: 2,
        BMap_Symbol_SHAPE_RHOMBUS: 3,
        BMap_Symbol_SHAPE_STAR: 4,
        BMap_Symbol_SHAPE_BACKWARD_CLOSED_ARROW: 5,
        BMap_Symbol_SHAPE_FORWARD_CLOSED_ARROW: 6,
        BMap_Symbol_SHAPE_BACKWARD_OPEN_ARROW: 7,
        BMap_Symbol_SHAPE_FORWARD_OPEN_ARROW: 8
    });
    U(window, {
        BMAP_CONTEXT_MENU_ICON_ZOOMIN: cc,
        BMAP_CONTEXT_MENU_ICON_ZOOMOUT: dc
    });
    z.ZS();
})()